タグ付けされた質問 「code-golf」

コードゴルフは、ソースコードの最小バイトで特定の問題を解決するための競争です。


26
整数のデジタル硬度
整数のデジタル硬さを見つけるには、そのバイナリ表現を取得し、先頭と末尾1がで始まるか終わるまで削除できる回数をカウントし0ます。削除されたビットの総数は、デジタル硬度です。 これは非常に冗長な説明です。実際の例で説明しましょう。 この例では、番号3167を使用します。バイナリでは、これは次のとおりです。 110001011111 (バイナリへの変換中に、先行ゼロを必ず削除する必要があることに注意してください) で始まったり終わったりしない0ため、1ペアのビットを削除します。 1 1000101111 1 そしてもう一つ: 11 00010111 11 しかし、最初は0であるため、もう1ペアを削除することはできません。合計で4ビットが削除されたため、4は3167のデジタル硬度です。 ただし、正のnに対して2 n -1(つまり、バイナリ表現のみを含む)として記述できる数値の場合、0には到達しないため、すべてのビットを削除できます。これは、硬度が単に整数のビット長であることを意味します。1 チャレンジ あなたの仕事は、負でない整数を与えられてn >= 0そのデジタル硬度を決定するプログラムまたは関数を書くことです。 I / Oを実行する完全なプログラム、または結果を返す関数を送信できます。送信はn、言語の標準整数範囲内の値に対して機能する必要があります。 テストケース これらのいずれかが正しくない場合、または追加するエッジケースを提案する場合は、私に通知してください。 0 -> 0 1 -> 1 8 -> 0 23 -> 2 31 -> 5 103 -> 4 127 -> 7 1877 -> 2 …

10
4ウェイ交差点ジェネレーター
以下は、4方向の交差点のASCIIアートです。 | | | | | | | | | | | | | -----+-----+----- | | - - -| |- - - | | -----+-----+----- | | | | | | | | | | | | | (水平道路の高さが3行で、垂直道路の幅が5列であることに注意してください。これは、四角形のフォントのために、審美的な理由からです。) あなたの課題は、このASCIIアートを作成することです。ただし、ご存知のとおり、すべての交差点にすべての方向に走行する道路があるわけではありません。この特定の交差点は行くがNESW、いくつかの交差点は行くかもしれない、例えばNW: | | | | | | | | | …

28
ASCIIテーブルをASCIIテーブルとして再作成します
コードゴルフをしている間、特定の文字のASCII値が何であるかを知りたいと思うでしょう。印刷可能なすべてのASCII文字をすばやく検索するための私のお気に入りのリソースの1つは、ASCIItable.comです。これには、印刷可能なASCII文字とその値だけでなく、印刷できない文字と拡張文字、および16進数、8進数、HTMLの値も表示する、本当に素晴らしい画像があります。 今日の課題は、そのASCIIテーブルをイメージではなくASCIIテーブルとして再作成することです。物事を簡単にするために、制御文字(32未満の文字)は使用せず、10進値と文字のみを表示します。言い換えれば、あなたの課題は、次のテキストを印刷または返すフルプログラムまたは関数を書くことです。 Dec Chr | Dec Chr | Dec Chr ---------------------------------- 32 Space | 64 @ | 96 ` 33 ! | 65 A | 97 a 34 " | 66 B | 98 b 35 # | 67 C | 99 c 36 $ | 68 D | 100 …

1
Android Lockパターンを把握する
友達が自分のパスワードをAndroidスマートフォンに入力しているのを見たとしましょう。彼らがどのようにパターンを作ったかは覚えていませんが、パターンがどのように見えるかは覚えています。あなたがあなたであるという懸念の友人であることは、彼らのパスワードがどれほど安全であるかを知りたいです。あなたの仕事は、特定のパターンを作成できるすべての方法を計算することです。 Androidパターンの仕組み パターンはノードの3x3グリッドに描かれます。パターンでは、画面から指を離さずに一連のノードにアクセスします。訪問する各ノードは、エッジによって前のノードに接続されます。留意すべき2つのルールがあります。 1つのノードに複数回アクセスすることはできません エッジは未訪問のノードを通過できません 通常、実行するのは非常に難しいため、実際のAndroidロックの組み合わせではあまり一般的ではありませんが、Knightのように移動することができます。つまり、一方の側から隣接していないコーナーに移動したり、反対側に移動したりすることができます。このような動きを採用したパターンの2つの例を次に示します。 これが実行されているアニメーションGifです。 パターンを解く 典型的なパターンは次のようになります。 このような単純なパターンでは、2つの方法でパターンを描画できます。2つのルーズエンドのいずれかから開始し、強調表示されたノードを介してもう一方に移動できます。これは多くのパターン、特に人間が通常使用するパターンに当てはまりますが、すべてのパターンに当てはまるわけではありません。 次のパターンを検討してください。 すぐに認識できる解決策が2つあります。左上から始まるもの: そして、下中央から始まるもの: ただし、線が選択されると、ポイントを通過することが許可されるため、上部中央から始まる追加のパターンがあります。 この特定のパターンには3つのソリューションがありますが、パターンには1〜4のソリューションがあります[要出典]。 それぞれの例を次に示します。 1。 2。 3。 4。 I / O ノードは、0から9までの整数、それらに相当する文字列、またはaからi(またはAからI)の文字として表すことができます。各ノードには、これらのセットのいずれかからの一意の表現が必要です。 ソリューションは、ノード表現を含む順序付けられたコンテナで表されます。ノードは、通過するのと同じ順序で並べる必要があります。 パターンは、ノードのペアの順序付けられていないコンテナで表されます。各ペアは、ペアの2つのポイントを接続するエッジを表します。パターン表現は一意ではありません。 パターン入力を標準入力メソッドを介して入力として受け取り、標準出力メソッドを介して同じパターンを作成するすべての可能なソリューションを出力します。 各入力には少なくとも1つのソリューションがあり、少なくとも4つのノードを接続すると想定できます。 希望する場合、または言語の選択により強制される場合は、順序付けられていないコンテナの代わりに順序付けされたコンテナを使用することを選択できます。 テストケース ノードを次のパターンで配置します。 0 1 2 3 4 5 6 7 8 ましょう{...}、順不同容器で[...]注文した容器であり、(...)ペアこと。 次の入力と出力は一致する必要があります {(1,4),(3,5),(5,8)} -> {[1,4,3,5,8]} {(1,4),(3,4),(5,4),(8,5)} -> {[1,4,3,5,8]} {(0,4),(4,5),(5,8),(7,8)} -> …

13
複数選択テストの不正行為、パート2
これは、アドナンによるこの挑戦の続編です。このチャレンジが好きなら、他のチャレンジも好きになるでしょう。見てみな! それぞれ4つの選択肢を持つ8つの質問による多肢選択テストには、答えがありますBCADBADA。4つの異なる配列に変換され、現在の文字が答えである場合はtrueとfalseで、次のようになります Q#: 1 2 3 4 5 6 7 8 B C A D B A D A A: [0, 0, 1, 0, 0, 1, 0, 1] B: [1, 0, 0, 0, 1, 0, 0, 0] C: [0, 1, 0, 0, 0, 0, 0, 0] D: [0, 0, 0, …

18
でこぼこのひもを描く
(この挑戦に触発された。) stringがあるとしましょうABBCBA。私たちは、間に上昇があることを言うことができるAとBするために、B次のA。我々は、間に実行があることを言うことができるBとB何が変わるため、。そして最後に、私たちは間に秋があると言うことができるCとはB。このようなグラフを描くことができます: A B B C B A Rising: o o Continuing: o Falling: o o ラベルなしで、空白を最小化: o o o oo これは、inputの期待される出力ですABBCBA。 o出力では、空白文字以外の文字を使用して置換できます。さらに、各列には、オプションで次のように余分なスペースがあります。 o o o o o 入力は少なくとも3文字で構成されます。文字列は完全に大文字で構成されますが、代わりに小文字を使用することもできます。 テストケース TEST CASE LINE 1 LINE 2 LINE 3 HELLOWORLD o oo o o o o oo TESTCASE oo o o …

14
OEISを自動化する
ここでは、OEISからシーケンスを作成する機能を求める多くの課題があります。これらの課題は楽しいものですが、プログラマーとして私は自動化の機会を見ています。 課題は、シーケンスのインデックス(例:A172141)と整数n(例:7)を取得し、適切なWebページから適切な値を取得するプログラムを作成することです。 I / O 前述のように、プログラムは入力としてシーケンスインデックスと値nを受け取り、そのシーケンスのn番目の項を出力する必要があります。シーケンスのBファイル内のインデックスを受け入れます。インデックスがBファイルにリストされている最大のインデックスよりも大きい場合、例外をスローしたり、選択したものを出力したりできます(これらはテストケースにはありません)。入力および出力の標準的な方法が許可されています。 Webの使用に関する制限 https://oeis.orgおよびhttp://oeis.org以外のWebサイトにはアクセスしないでください。これには、URL短縮サービス、個人のWebサイト、およびこの質問自体が含まれます。他のウェブサイトにアクセスしたいが、それを許可するのが不公平ではないと思われる場合は、コメントを残して仲裁します。 得点 これはコードゴルフチャレンジであるため、ソースコードで使用されるバイト数が最も少ないプログラムが勝ちます。標準の抜け穴は許可されていません。 テストケース マシンに適切なインターネット接続があり、OEISサーバーが稼働中であり、次の入力と出力が対応していると仮定します。 A172141, 7 -> 980 A173429, 4 -> 276 A190394, 6 -> 16 A002911, 11 -> 960 A052170, 3 -> 24 A060296, 8 -> 3 A178732, 5 -> 27 A000001, 1 -> 1 A000796, 314 -> 3 A001622, 162 …

22
四分位平均
仕事 ソートされた浮動小数点データセットを(何らかの方法で)与えられた場合、(何らかの方法で、正しい値の1‰以内で)四分位平均を返します。 1つの可能なアルゴリズム データポイントの最低および最高の四半期を破棄します。 残りのデータポイントの平均(合計をカウントで割った値)を計算します。 注:データセットのサイズが4つに均等に分割できない場合、サブセットで共有されるデータポイントを比較検討する必要があります。下記の評価例2を参照してください。 評価例1 与えられた{1、3、4、5、6、6、7、7、8、8、8、9、38} 我々は最低と最高3のデータポイントを削除するように、データ数は、12である:{ 1、3、4、 5、6、6、7、7、8、8、9、38 } 残りの6つのデータポイントの平均:(5 + 6 + 6 + 7 + 7 + 8)/ 6 = 6.5 評価例2 与えられた{1、3、5、7、9、11、13、15、17} カウントは9なので、各四半期には2¼データポイントがあります:{ 1、2、(0.25×5)、(0.75×5)、7、9、11 、(0.75×13)、(0.25×13)、 15、17 } 残りの4.5データポイントの平均:(0.75×5 + 7 + 9 + 11 + 0.75×13)/ 4.5 = 9

21
非ゼロとその近傍を保持する
Stack Overflowのこの質問から引用。@milesと@Dadaにも、いくつかのコーナーケースに対処するテスト入力を提案してくれてありがとう。 チャレンジ 整数値の配列が与えられた場合、ゼロ以外の値に挟まれていないゼロをすべて削除します。 同様に、エントリがゼロ以外の場合、またはエントリがゼロ以外の値にすぐに近い場合は、エントリを保持する必要があります。 保持されるエントリは、入力での順序を出力で維持する必要があります。 例 与えられた [2 0 4 -3 0 0 0 3 0 0 2 0 0] 削除する必要がある値には、x次のマークが付いています。 [2 0 4 -3 0 x 0 3 0 0 2 0 x] そして、出力は次のようになります [2 0 4 -3 0 0 3 0 0 2 0] ルール 入力配列が空の場合があります(そして出力も空でなければなりません)。 入力および出力形式は、通常どおり柔軟です:配列、リスト、文字列、または合理的なもの。 …

30
chmodをデコードします
チャレンジ 3桁の8進数の許可番号を指定し、付与する許可を出力します。 chmod UNIX OSでは、chmodコマンドを使用してファイル許可を変更します。chmodを使用する方法はいくつかありますが、今日注目するのは8進数のアクセス許可を使用することです。 許可番号の3桁は別の人を表しています: 最初の数字は、ユーザーの権限を表します 2桁目はグループの権限を表します 最後の数字は、他の人の許可を表します 次に、以下に示すように、各数字は許可を表します。 Key: number | permission 7 | Read Write and Execute 6 | Read and Write 5 | Read and Execute 4 | Read only 3 | Write and Execute 2 | Write only 1 | Execute only 0 | None …

21
コード内のミラー、ミラー
多くの場合、2次元プログラミング言語には、グリッド上の命令ポインターをリダイレクトするためのミラーコマンドが/あります\。 >>>>\ v v <<<</ この課題では、着信方向とミラーを指定し、発信方向を決定する必要があります。 ルール 到来方向は、文字の一つとして説明するNESWと、ミラーは、いずれかとして与えられる/、または\。これらは任意の順序で受け取ることができます。大文字を使用する必要があります。 2文字の文字列、文字間の区切り文字を使用した文字列、リスト内の文字のペア、またはシングルトン文字列のペアなど、任意の便利な形式で入力を取得できます。区切り文字付きの文字列を使用する場合、区切り文字には文字を使用できませんNWSE\/。 出力は、からの文字NESWまたは単一文字の文字列でなければなりません。 プログラムまたは関数を作成し、入力を受け取り出力を提供する当社の標準的な方法のいずれかを使用できます。 任意のプログラミング言語を使用できますが、これらの抜け穴はデフォルトでは禁止されています。 これはcode-golfであるため、バイト単位で測定される最短の有効な回答が勝ちます。 テストケース 処理する必要がある入力は8つしかないため、すべてのコードをテストしない理由はありません。 N / --> W N \ --> E E / --> S E \ --> N S / --> E S \ --> W W / --> N W \ --> S

29
部分文字列合計セット
前書き この配列を見てみましょう:[3, 2, 4, 1, 1, 5, 1, 2]。 各要素には、合計する必要がある部分文字列の長さが表示されます。上記の配列の最初の要素を見てみましょう。 [3, 2, 4, 1, 1, 5, 1, 2] ^ 最初のインデックスの要素は3なので、開始位置と同じインデックスを持つ長さ3の部分文字列を取得します。 [3, 2, 4] 合計すると、これは9になるため、部分文字列合計セットの最初の要素は9です。 配列内のすべての要素に対してこれを行います。 3 -> [3, 2, 4] 2 -> [2, 4] 4 -> [4, 1, 1, 5] 1 -> [1] 1 -> [1] 5 -> [5, 1, …

12
7セグメントの違い
ここにいるほとんどの人は、数字の7セグメントディスプレイが何であるかを知っていると思います。 _ _ _ _ _ _ _ _ | | | _| _| |_| |_ |_ | |_| |_| |_| | |_ _| | _| |_| | |_| _| 2 桁間の7セグメントの差(7SD)を、一方から他方に切り替えるために切り替える必要があるセグメントの数として定義できます。例えば7SD間となる5(3つの水平セグメント及び下部二つの垂直セグメントをトグルする必要がある)、及び6と8との間7SDである1。12 さらに、2つの数値間の7SDを、対応する数字間の7SDの合計と定義できます。1つの数値が他の数値よりも長い場合、それらは右揃えであると想定し、大きい数値の最上位の桁を表示するために必要なセグメントの数を追加します。例として、間7SDを考慮12345して549: x: 1 2 3 4 5 y: 5 4 9 7SD: 2+5+2+0+1 = 10 あなたの仕事は、nが与えられた場合、nとn + 1の間の7SDを計算することです。 …

29
リストを注文する
概要 整数のリストが与えられると、各整数がソートされたときに終わるインデックスを返します。 たとえば、リストがの場合、[0,8,-1,5,8]を返す必要があります[1,3,0,2,4]。2つ8のsは互いに相対的な順序を維持していることに注意してください(ソートは安定しています)。 別の言い方をすると、リスト内の各要素について、リスト内の要素の数を返します。選択した要素よりも小さいOR(選択した要素の前に要素ANDが表示される) インデックスは0(1ではなく)で開始する必要があります。編集:大きなプッシュバックがある場合、1ベースのインデックスを許可します。 テストケース: 0 -> 0 23 -> 0 2,3 -> 0,1 3,2 -> 1,0 2,2 -> 0,1 8,10,4,-1,-1,8 -> 3,5,2,0,1,4 0,1,2,3,4,5,6,7 -> 0,1,2,3,4,5,6,7 7,6,5,4,3,2,1,0 -> 7,6,5,4,3,2,1,0 4,4,0,1,1,2,0,1 -> 6,7,0,2,3,5,1,4 1,1,1,1,1,1,1,1 -> 0,1,2,3,4,5,6,7 1,1,1,1,1,1,1,0 -> 1,2,3,4,5,6,7,0

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.