プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

21
列ごとの合計
数値の空でない行の空でないリストが与えられた場合、列ごとのsumを計算します。これは、最長の入力行の長さを持つ別のリストです。出力リストの最初のエントリは、入力行の最初の全体の合計、2番目のエントリはすべての2番目の要素(使用可能な場合)などの合計です。次の例でより適切に説明すると思います。 Input: {[1,2,3,4],[1],[5,2,3],[6,1]} Computation: [1,2,3,4] + . . . [1]. . . + + + . [5,2,3]. + + . . [6,1]. . = = = = Output: [13,5,6,4] テストケース {[0]} -> 0 {[1],[1,1,1,1]} -> [2,1,1,1] {[1],[1,2],[1,2,3],[1,2,3,4]} -> [4,6,6,4] {[1,6,2,-6],[-1,2,3,5]} -> [0,8,5,-1]

26
デジタル合計フィボナッチ
私たちは皆、フィボナッチ数列に精通しています: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765 ただし、代わりに、前の2つのエントリのデジタル合計をf(n) = f(n-1) + f(n-2)取得します。 シーケンスは引き続きで始まる必要があり0, 1、その後、違いはすぐに明らかになります。このリストには0のインデックスが付いていますが、1のインデックスも使用できます。 f(0) = 0 f(1) = 1 f(2) = 1 # 0 + 1 f(3) = 2 # 1 + 1 f(4) …

8
壊れやすいクイン
壊れやすいクイン 壊れやすいクインとは、評価時に単一文字を削除して各サブストリングを作成するというプロパティを満たすクインであり、エラーが発生します。 例えば。プログラムasdfがキネである場合、それが壊れやすいためには、次のプログラムでエラーが発生する必要があります。 sdf adf asf asd プログラム(およびそのすべての部分文字列)は完全に決定的であり、同じ言語である必要があります。無限ループに陥る(つまり、終了に失敗する)プログラムは、最終的にエラーを生成しなくても、このチャレンジの目的で「エラーを生成する」と見なされます。 通常のクイン制限を含む標準的な抜け穴が適用されます(たとえば、独自のソースコードを読み取れない)。 たとえば、print("foo")脆弱ではありません。これらのサブストリングはすべてエラーにする必要があります。 rint("foo") pint("foo") prnt("foo") prit("foo") prin("foo") print"foo") print(foo") print("oo") print("fo") print("fo") print("foo) print("foo" エラーにならないものは次のとおりです。 print("oo") print("fo") print("fo") だから壊れにくいわけではありません。 クインに関する重要な注意事項 コンセンサスによって、可能なすべての馬はこれを満たさなければなりません: プログラムの別の部分をエンコードするプログラムのセクションを識別することが可能でなければなりません。(「異なる」とは、2つの部分が異なる位置に表示されることを意味します。) さらに、クインは直接または間接的に自身のソースにアクセスしてはなりません。 例 JavaScriptのfunction#toStringは「独自のソースコードを読み取る」と考えているため、許可していません。ただし、私がそれを禁止しなかった場合、JavaScriptの壊れやすいクインを次に示します。 f=(n=b=`f=${f}`)=>(a=(n)==`f=${f}`,n=0,a)&(n!=b)?b:q テスター プログラムのソースコードを指定すると、エラーが発生する必要があるすべてのプログラムを生成するプログラムを次に示します。 let f = (s) => [...Array(s.length).keys()].map(i => s.slice(0, i) + s.slice(i + 1)).join("\n"); let …
30 code-golf  quine  code-golf  date  code-golf  sequence  code-golf  sorting  file-system  code-golf  code-golf  ascii-art  hexagonal-grid  code-golf  string  arithmetic  code-golf  code-golf  code-challenge  source-layout  code-golf  ascii-art  cellular-automata  code-golf  string  arithmetic  balanced-string  code-golf  number  primes  code-golf  ascii-art  hexagonal-grid  code-golf  string  code-golf  string  code-golf  sequence  code-golf  ascii-art  code-golf  conversion  hexadecimal  code-challenge  restricted-source  code-golf  math  grid  code-golf  string  ascii-art  code-golf  random  minesweeper  code-golf  ascii-art  kolmogorov-complexity  board-game  scrabble  code-golf  ascii-art  code-golf  math  number-theory  decision-problem  code-golf  string  code-golf  natural-language  code-golf  internet  stack-exchange-api  code-golf  code-golf  conversion  code-golf  string  code-golf  math  arithmetic  code-golf  string  whitespace  code-golf  graphical-output  internet  code-golf  string  code-golf  string  random  permutations  code-golf  string  code-golf  string 

21
ランダムな混乱を生成する
チャレンジの説明 シーケンスの「混乱」とは、元の位置に要素が現れない順列です。たとえば、ECABDはの混乱ですがABCDE、そうでCBEDAはありません: ABCDE | | <- B and D are in their orignal positions CBEDA シーケンスを指定して、ランダムな混乱を生成します。 ノート 入力として文字列、または要素(整数、文字、オブジェクトなど)の配列/リストを使用できます。 新しいオブジェクトを返す代わりに、要素を交換することで既存のオブジェクトを変更できます 各混乱は、生成される確率が等しくなければなりません シーケンスに複数の要素があり、複数回出現する要素はないと想定できます。

30
私のミドルネームは何ですか?
注:勝利の答えは4/12/17に選択され、現在の勝者はJolf、1バイトです。 このサイトでミドルネームのチャレンジをまだ行っていないことに驚いています。私はたくさんの検索をしましたが、何も見つかりませんでした。これが重複の場合は、そのようにフラグを付けてください。 あなたの挑戦 のように見える文字列を解析してJo Jean Smith返しJeanます。 テストケース Input: Samantha Vee Hills Output: Vee Input: Bob Dillinger Output: (empty string or newline) Input: John Jacob Jingleheimer Schmidt Output: Jacob Jingleheimer Input: Jose Mario Carasco-Williams Output: Mario Input: James Alfred Van Allen Output: Alfred Van (最後の1つは技術的には正しくありませんが、修正は非常に困難です。) ノート: 名前には常にスペースで区切られた少なくとも2つの部分があり、それらの間に無制限のミドルネームが含まれているか、文字列のリスト/配列になります。 名前にはアルファベット(大文字と小文字を区別しない)と-(0x2d)を含めることができます 末尾の改行を出力できます。 入力の末尾に改行が必要になる場合があります。 STDIN、関数パラメーター、またはコマンドライン引数からの入力は許可されていますが、ハードコーディングすることは許可されていません。 …
30 code-golf  string 

15
HTMLカラーを出力する
16色CGAパレット(HTMLカラーとも呼ばれる)は、初期のグラフィックアダプターで使用される16色のセットです。このチャレンジの目標は、16個すべてを16進形式(RRGGBB)で、16進値の昇順で、改行で区切って出力することです。したがって、出力は次のようになります。 000000 000080 0000FF 008000 008080 00FF00 00FFFF 800000 800080 808000 808080 C0C0C0 FF0000 FF00FF FFFF00 FFFFFF 単一の末尾改行を使用できますが、必須ではありません。

9
ブダペスト
課題は簡単です。有限の非負整数が与えられると、ネストされた配列を出力するプログラムまたは関数を作成します。 ルール コードは、整数0 ‌≤ n ‌ <2 31 ごとに一意の有効なネストされた配列を生成する必要があります。 最大16個のオープンブラケットを持つネストされた配列はすべて、この範囲内で出力する必要があります。(これは、コードが16個を超える開き括弧を持つネストされた配列を出力できないことを意味するものではありません。) コードは、実際の配列(コンマの有無にかかわらず)の代わりに、ネストされた配列の文字列表現を出力する場合があります。 1つの可能なマッピング: 0 -> [] 1 -> [[]] 2 -> [[[]]] 3 -> [[], []] 4 -> [[[[]]]] 5 -> [[[], []]] 6 -> [[[]], []] 7 -> [[], [[]]] 8 -> [[], [], []] 9 -> [[[[[]]]]] etc. 得点 …

30
こんにちは
仕事 おそらく無限のテキストストリームまたはファイルを読み込み、hello次のルールに従って、単語が出力されるまでその内容を出力します。 いったんhello出力された、あなたのコードはすぐに終了する必要があります。たとえば、改行を待つべきではありません。 コードはそのまま出力されるはずです。つまり、大量の入力を読み取ってから出力を開始するべきではありません。 ストリーム/ファイルにが含まれていない場合hello、コードは入力を永久に、またはストリーム/ファイルの終わりに達するまで出力し続ける必要があります。 これは大文字と小文字が区別されるため、helloと等しくありませんHello。 入力は、印刷可能なASCII文字と改行のみで構成されていると想定できます。 コードでは、テキストが改行で終了することや、入力に改行が含まれることを期待できません。また、コードは、メモリが無限にあるマシンで実行されると想定することはできません。 あなたのコードは空のディレクトリから呼び出されると仮定するかもしれません。 入力ストリームの例 I once had a horse called hellopina. 出力 I once had a horse called hello 先端 実行yes | tr -d \\n | <your program>して、無限ストリームで機能するかどうかを確認します。何も出力しない場合やメモリがリークする場合、プログラムは仕様に準拠していません。yyyyyyyyyyyyyyyyyyyyyy...改行なしで永久に印刷されるはずです。
30 code-golf  string 

5
整数、アセンブル!
あなたの仕事は、1toからN(入力として与えられた)整数を(入力としても与えられた)幅Wと高さの長方形に組み立てることHです。個々の番号は90度の倍数で回転できますが、長方形内では連続したブロックとして表示される必要があります。つまり、数字の1つを複数の数字に分割して、数字を個別に長方形に配置することはできません。また、角の周りに数字の3桁を曲げることもできません。それぞれの数字は、壁を構築するレンガと考えることができます。 以下に例を示します。入力がであるとし(N, W, H) = (12, 5, 3)ます。1つの可能な解決策は次のとおりです。 18627 21901 53114 わかりやすくするために、このグリッドの2つのコピーを示します。1桁の数字が非表示になっているものと、2桁の数字が非表示になっているものです。 1#### #8627 2##01 #19## ##11# 53##4 長方形を独自の方法で再び分解できない場合は問題ありません。たとえば、上記の例では、12も次のように配置できます。 ##### 18627 21#01 ##9## ##11# 53##4 ルール これNは正でありW*H、整数から1までの整数の桁数と一致Nし、指定された数値への長方形のタイルが存在すると仮定できます。私は現在、これが常に可能であるかどうかの証拠を持っていませんが、もしあなたがそうするならば、私はそれに興味があります。 出力は、単一の改行で区切られた文字列または文字列のリスト(各行に1つ)、または1桁の整数のリストのリスト(各セルに1つ)のいずれかです。 提出の結果は確定的である必要があり、合理的なデスクトップマシンで1分以内にすべてのテストケースを処理できる必要があります。 プログラムまたは関数を記述し、入力を受け取り、出力を提供する当社の標準的な方法のいずれかを使用できます。 任意のプログラミング言語を使用できますが、これらの抜け穴はデフォルトでは禁止されています。 これはcode-golfであるため、バイト単位で測定された最短の有効な回答が勝ちます。 テストケース 最初のものを除いて、これらのどれもユニークではありません。各テストケースのN W H後に、可能な出力が続きます。長方形が狭すぎて大きな数字を水平に書き込むことができない場合に、答えが機能することを確認してください。 1 1 1 1 6 6 1 536142 6 2 3 16 25 34 …

30
チャーリー、オスカー、デルタ、エコー
無線通信の大部分はNATO Phonetic Alphabetです。これは、通信で文字を理解しやすくするために文字を単語としてエンコードします。あなたがそれを受け入れたいなら、あなたの仕事はそれらを一つずつ印刷することです。 この正確な文字列を標準出力に出力する必要があります。 A: Alfa B: Bravo C: Charlie D: Delta E: Echo F: Foxtrot G: Golf H: Hotel I: India J: Juliet K: Kilo L: Lima M: Mike N: November O: Oscar P: Papa Q: Quebec R: Romeo S: Sierra T: Tango U: Uniform V: Victor W: Whiskey …

13
North by North by North by South East
N、S、E、Wの文字列が与えられた場合、方位(北から時計回りの角度、度単位)を出力し、小数点以下5桁に修正します。 従来のコンパス表記、文字列は、わずか2(NNWまたはESEのような)これらの文字で構成されています。ここでは、4つすべてを含む文字列(WNNNSEなど)も受け入れる必要があります。2つのシンボルのみを使用すると、人間が意味を直感的に理解できます。4つのシンボルを許可すると読みにくくなりますが、指定された精度で方位を記述するより短い方法が許可されます。 ASはで指摘(コメントによってuser2357112、それはあなたが、私は偽の前提にこの課題に基づきまして、任意のベアリングのために、4記号列は、2記号列とまったく同じ長さになることを証明することができ判明します。この実用的な目的の欠如が、チャレンジの楽しみを損なうことはないことを願っています...) 正確な方法を以下に説明し、従来の表記法と同等です(変更するのではなく、拡張します)。 入力 入力は、文字のみを含む単一の文字列NESWです。 必要に応じて、入力に文字のシーケンスを使用できますが、これには前処理が含まれていません。たとえば、ネストされたリスト[N, [E, [S, [W]]]]を使用して処理の順序を支援することは許可されていません。 異なるキャラクターを使用することは許可されていません。の1234代わりにの文字列を使用することはできませんNESW。 出力 出力は、10進数または1のストリング表現でなければなりません(有理数/分数ではありません)。 末尾のゼロを表示する必要はありません。方位がの場合、9.00000出力9は小数点以下5桁まで正しいものとしてカウントされます。 出力の範囲は[0、360)です。つまり、0を含むが360は除外されます。 出力が小数点以下5桁に丸められることにより、正当性がチェックされます。ベアリングが0.000005の場合、これは0.00001に丸められます。出力0.00001と0.000005は両方とも正しいです。 一部の入力については科学表記法での出力が許容されます。たとえば、の1e-5代わりに0.00001。 変換 単一文字コンパスポイントN、E、S、及びW対応する0°、90°、180°、及び270°夫々 。 これらのいずれかを文字列の前に付けると、単一文字の方位と元の文字列の方位を二分する方位になります。 NEが225度ではなく45度を表すように、2つの可能な二等分軸受のうち最も近いものが選択されます。 これは、二分される角度が180度である場合を除いて明確です。したがってNS、SN、WE、及びEW不定ベアリングに対応し、入力は、これらのいずれかで終わることはありません。ただし、これらはあいまいさを引き起こさないため、入力文字列の他の場所に表示される場合があります。 最後の2つの文字が同一である場合、2分割が同じ方位を返すため、最後の文字は冗長になります。これは表記に何も追加しないため、コードでこれを処理する必要はありません。したがってNN、EE、SS、及びWW不定ベアリングに対応し、入力は、これらのいずれかで終わることはありません。ただし、入力文字列の他の場所に表示される場合があります。 例 N: 0 E: 90 S: 180 SE: halfway between S and E: 135 NSE: halfway between N and SE: 67.5 NNSE: halfway between N and …
30 code-golf 

29
インターリーブ文字列
インスピレーション。*私たちが以前にこの課題に直面したことはないと信じられません 仕事 1つ以上の印刷可能なASCII文字列が与えられた場合、各文字列から1文字ずつ、文字がなくなるまで周期的にインターリーブします。文字列が他の文字より前に文字を使い果たした場合、それ以降はその文字をスキップします。 例 SIMPLE 与える SIMPLE POLLSそしてEPEES与えるPEOPLELESS LYESそしてAPRONS与えるLAYPERSONS ABCDEそしてa cそして123 567与えるAa1B 2Cc3D E567 "\n$?*そして​(空の文字列)と,(.)" (末尾のスペース)は",\(n.$)?"* (末尾のスペース)を与える *より短いAPLソリューションがあります。

14
ミラーはどこに置けばいいですか?
これはミラーです|。文字列をミラーリングできる場合、文字列の中央にミラーを貼り付けることができることがわかりました!たとえば、文字列abccba。半分にカットすると、2つの半分は互いに鏡像になります。 abc <--> cba したがって、文字列の中央にミラーを貼り付けることができ、新しい文字列はabc|cbaです。場合によっては、文字列の一部のみをミラーリングできます。たとえば、文字列「mirror」。2つのrはミラーリングされていますが、残りのストリングはミラーリングされていません。大丈夫です。互いにミラーリングしない文字列の部分を削除するだけで、次の文字列が取得されます。 r|r 一部の文字列は、複数の場所でミラー化できます。たとえば、「He​​llo World、xyzzyx」。鏡にたくさんのテキストが映るのが好きなので、鏡を置くのに最適な場所を見つける必要があります。この場合、より長いミラーリングされた文字列を出力し、最後の例と同様に、他のすべてを削除する必要があります。この文字列は次のようになります。 xyz|zyx 一部の文字列はミラーリングできるように見えますが、実際にはミラーリングできません。文字列をどこにもミラーリングできない場合は、何も出力しないでください。 チャレンジ: printable-asciiのみを含む文字列が与えられた場合、ミラーを配置するのに最適な場所を見つけます。言い換えると、 最大の偶数長のパリンドローム部分文字列を見つけて、パイプ文字「|」で出力します 途中で。 入力の長さは1〜50文字です。 入力にミラー|や改行は含まれないと想定できます。それを超えて、すべての印刷可能なアスキー文字は公正なゲームです。ミラーリングされた最長のサブストリングが2つのサブストリングの間にある場合、出力するサブストリングを選択できます。たとえば、文字列「abba ollo」の場合、「ab | ba」または「ol | lo」を出力する必要がありますが、どちらを出力してもかまいません。文字列は、大文字と小文字が区別され例えば「ABBA」すべきでない出力は空の文字列|「BA AB」、それが出力する必要があり。 サンプルIO: "Hello World" --> "l|l" "Programming Puzzles and Code-Golf" --> Either "m|m" or "z|z" "abcba" --> "" "Hulluh" --> "ul|lu" "abcdefggfedcba" --> "abcdefg|gfedcba" "abcdefggfabc" --> "fg|gf" "AbbA" --> …

22
Stern-Brocotシーケンスに従ってn番目の有理数を出力します
スターン- Brocot配列は Fibonnaci様配列次のように構成することが可能です。 シーケンスを初期化する s(1) = s(2) = 1 カウンターを設定 n = 1 s(n) + s(n+1)シーケンスに追加する s(n+1)シーケンスに追加する インクリメントn、ステップ3に戻る これは次と同等です: 他のプロパティの中でも、Stern-Brocotシーケンスを使用して、可能なすべての正の有理数を生成できます。すべての有理数は一度だけ生成され、常に最も単純な用語で表示されます。たとえば、1/3シーケンスの第四有理数、同等の数字である2/6、3/9などがまったく表示されません。 上記のように、n番目の有理数をとして定義できますr(n) = s(n) / s(n+1)。ここでs(n)は、n番目のStern-Brocot数です。 あなたの課題は、Stern-Brocotシーケンスを使用して生成されたn番目の有理数を出力するプログラムまたは関数を作成することです。 上記のアルゴリズムは1から始まります。エントリのインデックスが0の場合は、回答に記載してください 説明されているアルゴリズムは説明のみを目的としており、出力は任意の方法で導出できます(ハードコーディング以外) 入力は、STDIN、関数パラメーター、またはその他の妥当な入力メカニズムを介して行うことができます Ouptutは、STDOUT、コンソール、関数の戻り値、またはその他の妥当な出力ストリームになります。 出力はの形式の文字列である必要がありますa/b。ここでaおよびbは、Stern-Brocotシーケンスの関連エントリです。出力前に端数を評価することはできません。たとえば、入力の12場合、出力はで2/5はなくである必要があり0.4ます。 標準の抜け穴は許可されていません これはcode-golfなので、バイト単位の最短回答が勝ちます。 テストケース ここでのテストケースは1から始まります。 n r(n) -- ------ 1 1/1 2 1/2 3 2/1 4 1/3 5 3/2 6 …

20
難解なコードからコメントを解析する
今週初め、私たちはどのように 、コメント用に難解な言語フォーマット。今日は、その逆を行います。よくコメントされた難解なコードを解析し、コメントを解析して、コードだけを返すプログラムまたは関数を作成する必要があります。前の課題からのいくつかの例を使用して、ここによくコメントされたコードがどのように見えるかを示します: a #Explanation of what 'a' does bc #Bc d #d e #Explanation of e fgh #foobar ij #hello world k #etc. l #so on mn #and op #so forth コードを抽出するために必要なことは次のとおりです。最初に、コメント文字(#)、その前のスペース、およびコメント文字の後のすべてをます。 a bc d e fgh ij k l mn op 次に、各行を上に折り畳んで単一の行にします。たとえばb、2行目の2列目にあるため、折りたたむと、1行目の2列目になります。同様に、c1行目の3列目に配置され、dに配置され、4行目に配置されます。すべてのキャラクターについてこれを繰り返して、これを取得します: abcdefghijklmnop 重要な注意:コメントを削除し、すべてのスペースを削除し、すべての行を結合することが簡単な解決策のようです。これは有効なアプローチではありません!元のコードにはスペースが含まれている可能性があるため、このアプローチではスペースが削除されます。たとえば、これは完全に有効な入力です。 hello #Line one #Line two …

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