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

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

9
賢い数字を作る
Wiseは、私がしばらく前に設計した単純なビット単位の言語です。Pythonのビット演算に基づいています。いくつかの操作があり、これらのほとんどはPythonの同等のシンボルと同じか、非常に似ています。 : スタックの一番上を複製する ? スタックの上部を下部に回転させます ! スタックの下部を上部に回転させます [ ] スタックの最上部がゼロでないときにループする ~スタックの最上部ではない(-(n+1)) -スタックのトップを無効にします(-n) >スタックの一番上を一度右にビットシフトします(n//2) <スタックの一番上を一度左にビットシフトします(n*2) ^xorスタックの上位2項目(Pythonと同じ) |またはスタックの上位2項目(Pythonと同じ) &スタックの上位2項目(Pythonと同じ) Wiseで整数を作成するのは非常に簡単で、ゼロを作成し::^て増分できる~-ので、ゼロを作成して何度も増分できます。しかし、-物事を削除すると、もう少し面白くなります。 残りの操作を使用して、すべての番号を作成できます。たとえば、ここは3です ~<<~ TIO これ~は、無限の0ビット列であるゼロを負のビット、無限のビット列に変換し1、それぞれが最後にビットを<追加する0ために機能します。終了すると、~それぞれ0が2つ1のsが続くsの文字列になります、またはほとんどの人がそれを呼ぶように3。 仕事 正の整数を指定すると、そのソース(出力のソース、独自のソースで使用可能)nなしで数値を作成するWiseプログラムを出力するプログラムを作成します。スタックの先頭に既にゼロがあると仮定することができます。-- これはメタゴルフで はなく コードゴルフなので、必ずしも出力ではなくソースコードの生成を最小限にすることを目指してください。 出力例 このリストは網羅的ではなく、単に可能な出力です 1 -> ~<~ 2 -> ~<~< 3 -> ~<<~ 4 -> ~<~<< 5 -> ~<~:<<| 6 -> ~<<~< 7 -> ~<<<~ …

13
私の寸法は何ですか?
タスク:三角形の面積が与えられたら、その面積を持つヘロニアン三角形を見つけます。指定された面積を持つヘロニアン三角形はすべて許可されます。 ヘロニアン三角形は、整数の辺と整数の面積を持つ三角形です。ヘロンの公式により、辺の長さの三角形にa,b,cは面積があります sqrt(s*(s-a)*(s-b)*(s-c)) どこs=(a+b+c)/2三角形の半分周囲はあります。これは次のように書くこともできます sqrt((a+b+c)*(-a+b+c)*(a-b+c)*(a+b-c)) / 4 そのような三角形が存在しない場合は、一貫したfalsey値で出力します。 入力:三角形の面積を表す単一の正の整数。 出力:このような三角形の3辺の長さ、または偽の値。 例: Input -> Output 6 -> 3 4 5 24 -> 4 15 13 114 -> 37 20 19 7 -> error 標準的な抜け穴が適用されます これはコードゴルフで、バイト単位の最短回答が勝ちです。

30
不足している文字を印刷する
シンプルな挑戦は、私の以前の人気に触発されたプリント目に見えないテキストと実際の見えないテキスト印刷挑戦をし、同じ長さの異なる文字列挑戦。 印刷可能な文字(0x20 to 0x7E)のみで構成される文字列を指定すると、文字列に存在しないすべての印刷可能な文字を印刷します。 入力 印刷可能なASCII文字のみで構成される文字列、または文字の配列 出力 任意の順序で入力文字列に存在しないすべての印刷可能なASCII文字。 テストケース Input: "Hello, World!" Output: ""#$%&'()*+-./0123456789:;<=>?@ABCDEFGIJKLMNOPQRSTUVXYZ[\]^_`abcfghijkmnpqstuvwxyz{|}~" ======== Input: "Hi!" Output: " "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjklmnopqrstuvwxyz{|}~" ======== Input: "" Output: " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" ======== Input: " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" Output: "" 得点 これはコードゴルフなので、各言語で最少のバイトが勝ちます
18 code-golf  string 

28
刑務所で今
チャレンジ 入力として整数n(where 4<=n<=10**6)を指定すると、以下の例のシンボルを使用して、n-1文字の幅とn高さを測定するASCIIアート「刑務所の扉」*が作成されます。 例 ╔╦╗ ╠╬╣ ╠╬╣ ╚╩╝ 使用される文字は次のとおりです。 ┌───────────────┬─────────┬───────┐ │ Position │ Symbol │ Char │ ├───────────────┼─────────┼───────┤ │ Top Left │ ╔ │ 9556 │ ├───────────────┼─────────┼───────┤ │ Top │ ╦ │ 9574 │ ├───────────────┼─────────┼───────┤ │ Top Right │ ╗ │ 9559 │ ├───────────────┼─────────┼───────┤ │ Right │ ╣ │ 9571 …

17
最大不一致2シーケンスを圧縮する
長さ1160のこのバイナリシーケンスを出力します。 -++-+--++-++-+--+--++-+--+--++-+--++-++-+-++--++-+---+-++-+--+--++++--+--++-+--++-++----++-++-+-++--++-+-+---++-+--++-++-+--++-+--+---+-++-+--++-++-+--+--++-++-+--++-+--+++-+-+----+++-+--+--+++---++-++-+--+--+++--+-+-+--+-+++-++-+--+--++-+--++-++-+--+--++--+++---+++-+---++-+--++--+-+--+-+++-+--++-++-+--++-+--+--++-+--++--+-++-+-+--+-+-++-+--++-+--+--++-+-+-++-+-+-++---+-+--++++--+---++-+-++-+--++-+--+--++-+--++++--+---+-++++--+--++-++-+--++-+--+--++-+--++-++-+--++-+--+--++-++-+----+++-+--++--+++---+-++-+--+-++---+-++-++-+--+--++--++++-+--+--+--++++--+--+++---++-++-+--++--+-+--+--++-++-+--+--+-+++-++-+--+--++--+-++-++-+--+--+--++-++-+--+++---++-+--++-++---+++---++-++----+++--+-++-+--+--++-+--++-++-+-++--++--++----+++-++--++----++-+++--++---+++----+-+-++-++-++-+-+----+++--++-+--++-++-+--+--+--++-+--++-++-+--++--+-+--+-+-+-++++---+-+-++--+--+-+-+-++-+-+++--+-+--+--+-+++--+-+++---++-+--+--++-++--++---++-+-++--++-+---+-++-+--+-++--++-+--++-+--+-+++-+--++--+-+-+++--+-+--++-++-+--+--+-++---+-++-+-++--++-+--+++-+----++--+-++-+-++--++-+--++-+-++--++-+---+-++-+--+++----+-+-++--++-+--++-++-++-+--+--+--++++---++---+-+-++-+-+++--+-++--+-+--+-+-++---+++-++ シーケンス この有限なシーケンスは、圧縮のためのユニークな方法に役立つことを願って、しっかりと構造化されています。これは、以前の課題で取り上げられたエルドの矛盾の問題から生じます。 用語を+1および-1として扱うと、これは矛盾2の最大長のシーケンスであり、次のことを意味します。 すべての正のステップサイズでd、すべてのd'th項(th項から始まる)を取る場合d、結果のシーケンスの実行中の合計は-2から2までの範囲に残ります。 それぞれ+が右-へのステップを意味し、左へのステップを意味すると考える場合、これは、すべてのd命令のウォークが開始位置から2ステップ以上移動しないことを意味します。 たとえば、の場合、d=33項ごとに取得する+-++--+--+-...と、実行中の合計が[1,0,1,2,1,0,1,0,-1,0,1,...]-3または3にならないシーケンスが得られます。 -++-+--++-++-+--+--++-+--+--++-+--+... ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ + - + + - - + - - + - 1 0 1 2 1 0 1 0 -1 0 -1 ... このシーケンスは、コンピューター検索によって2014年に発見されました。シーケンスが付録Bに再現されているこのペーパーを参照してください。1160が不一致2シーケンスの最大長であることが証明されていますが、その長さのシーケンスは複数あります。2015年に証明されたエルドの不一致の問題は、そのようなシーケンスcは2の代わりに最大の不一致のために有限の長さを持たなければならないと述べています。 所要時間 コードは5秒以内に終了するはずです。これは、総当たり攻撃を制限するためです。 出力フォーマット あなたは、のために任意の2つの固定の異なる文字や値を使用することができます+し、-任意のリスト状または紐状の形式で。形式は、たとえばバイナリ表現を介して数値としてエンコードされたり、文字値を介して文字列としてエンコードされたりするのではなく、1160ビット値を直接読み取ることができる形式でなければなりません。文字列出力の場合、末尾の改行が許可されます。 リーダーボード コードスニペットを表示 …

30
ミドルネームのコンマは誰ですか?
あなたの課題は、入力として名前(文字列)を取得することです Albert Einstein および出力: Einstein, Albert 擬似コード: set in to input set arr to in split by " " set last to the last element of arr remove the last element of arr set out to arr joined with " " prepend ", " to out prepend last to out …
18 code-golf  string 

6
合計?それが私の得意です!
前書き Forteは、数値の値を変更するという概念に基づいた非常に特殊な難解な言語です。Forteの数値は定数ではなく変数であるため、LET命令を使用して新しい値を割り当てることができます。 たとえば、実行した後LET 2=4-1に、今から2の値を前提としてい3た値がいつでもあることを意味、2それは代わりで「置き換え」された表現で起動しますが3。これで式(1+1)*2はに評価され9ます。 Forteのこの命令は、情報の保存とフロー制御の両方に使用されます(行には番号が付けられ、番号の値を変更することで実行順序を決定できます)。この課題では、この2番目の側面を扱いません。 チャレンジ ForteのLET式の簡略化されたサブセット用のインタープリターを作成する必要があります。 入力として、この文法に続く一連の行を受け取ります。 <line>::= <number>=<expression> <expression>::= <number>|<expression>+<number> 注:この文法は、行番号、LET、および括弧(常に必須)がないため、有効なForteではありません。 つまり、合計の計算と数値への値の割り当てのみを処理する必要があります。括弧は入力に存在せず、各式は左から右に評価する必要があります:部分的な結果は再定義の影響を受けることに注意してください! 数値は常に、使用している言語のネイティブ整数型の制限(または2 ^ 32のいずれか大きい方)までの負でない整数になります。 各行について、式の結果を出力し、この結果を最初の数値の(場合によっては再割り当てされた)値に割り当てる必要があります。これは、後続の行の解釈方法に影響します。 これはcode-golfで、最短のコード(バイト単位)が勝ちです! その他の規則 入力形式は柔軟です。たとえば、改行を含む単一の文字列、文字列のリスト、数値のリストのリストを使用できます...入力。 関数、完全なプログラム、またはソリューションをサブミットして、REPL環境で実行し、各行に対して1回呼び出すことができます。 標準的な抜け穴は禁止されています。特に、コード内で外部のForteインタープリターを呼び出すことはできません。 例 これらはすべて同じ入力の一部です。各行の後に、その行に関連する予想される出力が表示されますが、関連する再割り当てを示すコメントが表示される場合もあります(必要な出力の一部ではありません)。 5=4 4 6=5 4 # 5 -> 4 7=1+2+5 7 7=5+2+1 4 # Order of operations matters! 5+2 -> 4+2 -> 6 -> 4 18=5+6+7 …

4
埋め込み六角形!
あなたのタスク:整数を指定するとn、以下の規則に従って、n番目の深さまで埋め込み六角形パターンを生成します。 埋め込まれた六角形の基本形状は次のとおりです:(n=0) __ / \ \__/ 埋め込み六角形n=1およびn=2: ____ / \ \ /\__/ \ \ / \____/ ________ / \ \ \ /\__/ \ \ /\ / \ / \____/ \ \ / \ / \ / \________/ 各辺の長さは、前の深さの同じ辺の長さの2倍の2倍です。上部と下部は2文字の長さn=0で、残りは1文字の長さで始まります。上下以外の辺の長さは2^n長くする必要があり(OEIS:A000079)、上下の辺はルールに従う必要があります2^(n+1)(同じOEIS)。 現在の六角形のインデックスは0ですが、必要に応じて1インデックスを使用することもできます。 これはcode-golfなので、最短の答えが勝ちです!

6
ロッシーまたはロスレス?
音声ファイルを指定して、それが非可逆形式でエンコードされているか、可逆形式でエンコードされているかを判断します。この課題のために、分類する必要があるのは次の形式のみです。 ロッシー AC3 AMR AAC MP2 MP3 オグ・ヴォルビス WMA 無損失の AIFF FLAC TTA WAV ルール 入力がファイル名の形式で行われる場合、ファイル名について何も仮定する必要はありません(たとえば、拡張子が形式に対して正しいこと、または存在することさえ保証されません)。 入力ファイルにはID3またはAPEv2メタデータは存在しません。 0and 1、lossyand lossless、fooand barなどなど、2つの一意で区別可能な出力を使用できます。 テストケース この挑戦のためのテストケースがあり、zipファイルで構成され、ここで二つのディレクトリが含まれていますlossyとlossless。各ディレクトリには、さまざまな形式でエンコードされたすべて0.5秒の440 Hz正弦波である複数のオーディオファイルが含まれています。すべてのオーディオファイルには、A440.m4a(MPEGレイヤー4コンテナのAACオーディオである)例外を除いて、上記の形式に一致する拡張子があります。

1
雪を作ろう!
あなたのタスク:Kochスノーフレークをn番目の深さまで生成します。完全なKochスノーフレークを作成する必要はありません。開始三角形の片側だけです。コッホフレーク上のウィキペディア:https://en.wikipedia.org/wiki/Koch_snowflake。 ルール: プログラムは、コッホ雪片の片側をn番目の深さまで生成する必要があります。 出力はASCIIでなければなりません。 あなたはあり全体の雪片を生成します。これは必須ではありません。 入力/出力および抜け穴とスタッフの標準ルールが適用されます。 すべての文字が互いに適切な場所にある限り、空白は重要ではありません。 最短のコードが勝ちます! テストケース: n = 0: __ n = 1: __/\__ n = 2: __/\__ \ / __/\__/ \__/\__ n = 3: __/\__ \ / __/\__/ \__/\__ \ / /_ _\ \ / __/\__ __/ \__ __/\__ \ / \ / \ / __/\__/ …

10
これは私たちがロールする方法です
Pietはいくつかの理由で興味深いプログラミング言語です。今日は、1つの理由に注目します。ロールコマンドです。rollコマンドはもともとPostScriptからのもので、スタックを操作する強力な方法です。 rollコマンドは、スタックの上位2つの要素をポップし、それらをパラメーターとして使用します。最初の値をポップturnsし、2番目の値を呼び出しますdepth。深さnへのターンは、スタックの最上位の要素を取得し、スタック内のn番目の要素にし、その上の各要素を1つ上に移動します。turns 負の場合、これは反対方向に行われます。つまり、n番目の要素は上に移動し、他の要素は下に移動します。これは何abs(turns)度も繰り返されます。 チャレンジ スタックを取り込んで、ロールの実行後にそのスタックを返すプログラムまたは関数を作成します。 ルール 入力および出力は、リスト、配列、区切り文字付きの文字列、一度に1つの要素、またはその他の適切な形式で渡すことができます。出力は入力と同じ形式である必要があります。 depth 負になることはなく、スタックの長さを超えることはありません。 入力スタックには常に少なくとも2つの要素が含まれます。 これはコードゴルフなので、各言語で最短の答えが勝ちます。そのため、私は答えを受け入れません。 標準的な抜け穴は禁止されています。 テストケース in: out: 2 4 1 3 2 4 3 1 4 2 5 5 6 6 in: out: -2 3 1 2 2 3 3 1 in: out: -42 0 1 1 2 2 3 3 4 …
18 code-golf  stack 

8
終了コード文字列出力
与えられたときは、そのプログラムや関数を記述しなければならない空でない文字列SのN印刷可能なASCII文字†、終了コードで終了しますプログラム出力C、Cは位置0でASCIIコードポイントであるSを。あなたが書いたこのプログラム意志に加えて、出力プログラムP、実行したときに、それが終了コードで終了し、このようなことをC '、C'の中の位置1でのASCIIコードポイントであるS。プログラムPは別のプログラムP 'を出力します。このプロセスは、Sに文字がなくなるまで繰り返されます。。これが行われた後、何も出力せず、オプションの改行が続きます。終了コード0で終了します。 †両端の文字0x20を0x7e含む。 いくつかのルール: 自己修正プログラムは許可されていません。ソースをSTDOUTに出力する必要があります(または、最初に値を返す) 独自のソースコードを読むことはできません。 バイト単位の最短のプログラムが勝ちます。 いくつかの初歩的なテストでは、このルビースクリプトを使用できます。(最初の引数はスクリプトの呼び出し方法、2番目はプログラム、3番目は入力文字列です。) 仮説の例 プログラムはであると言いFOOます。文字列「ABC」を指定すると、が出力されますBARA。このプログラムは、コード65を出力して終了しますBARB。これは、コード66と出力で終了しますBARC。このプログラムは、コード67を出力して終了しますBAR!。これは何も出力せず、codeで終了します0。
18 code-golf  quine 

28
逆モジュラスを計算する
タスク: の値を出力します。xここでa mod x = b、2つの値がありますa,b。 仮定 aそして、b常に正の整数になります 常に解決策があるとは限りません x 複数のソリューションが存在する場合は、少なくとも1つを出力します。 解決策がない場合は、何も出力しないか、解決策が存在しないという兆候を出力します。 組み込みが許可されています(他の数学的アプローチほど面白くありません) 出力は常に整数です 例 A, B >> POSSIBLE OUTPUTS 5, 2 >> 3 9, 4 >> 5 8, 2 >> 3, 6 6, 6 >> 7, (ANY NUMBER > 6) 8, 7 >> NO SOLUTION 2, 4 >> NO …
18 code-golf  math  number-theory  code-golf  number  integer  code-golf  string  code-golf  music  code-golf  arithmetic  array-manipulation  decision-problem  code-golf  math  rational-numbers  code-golf  code-golf  graphical-output  hardware  code-golf  math  number  code-golf  string  parsing  natural-language  code-golf  tips  brain-flak  code-golf  graph-theory  code-golf  number  polynomials  king-of-the-hill  code-golf  ascii-art  kolmogorov-complexity  animation  king-of-the-hill  code-golf  tips  code-golf  ascii-art  code-golf  string  array-manipulation  data-structures  code-golf  math  number  code-golf  string  base-conversion  binary  code-golf  decision-problem  graph-theory  code-golf  math  polynomials  code-golf  kolmogorov-complexity  physics  code-golf  sequence  number-theory  code-golf  math  integer-partitions  code-golf  array-manipulation  random  permutations  code-golf  string  decision-problem 

8
入力番号; 出力行番号
コードゴルフ 完全に本当の裏話:私はウェブサイトwwwで働いている請負業者です。Sky.Netと私たちのタスクの1つは、自己認識プログラムなどを作成することです。上司の話を聞いていなかったのはわかりません。とにかく、コードの自己認識を高めるために、各行番号にどのコードがあるかをITが把握できるようにする必要があります。 チャレンジ 入力を受け取り、そのプログラムまたは関数nのコードをオンラインで返すプログラムまたは関数を作成しますn。 ルール programプログラムまたは関数は少なくとも4行の長さが必要です。各行は一意である必要があります。 input入力は常に、1以上でプログラム/関数の行数以下の正の整数であると仮定できます。 programプログラム/関数の最初の行は、行0ではなく行1です。 programプログラムが入っているファイルにアクセスできません。(誰かが「これは技術的に破るルール#4ではないか?」 ➎行を空にすることはできません(スペースが言語で何もしない場合はスペースが含まれます) ➏行を//コメントにすることはできません(任意の<!-styleの/ *) これは馬のような挑戦です これはcode-golfなので、バイト数が最小の提出が勝ちです!
18 code-golf  quine 

21
最長の等しいサブシーケンス
定義 サブシーケンスは連続していない場合があります。たとえば[1, 1, 1]、のサブシーケンスです[1, 2, 1, 2, 1]。 等しいサブシーケンスは、すべての要素が等しいサブシーケンスです。 最長の等しいサブシーケンスは一意ではない場合があります。たとえば [1, 1]と[2, 2]の両方の最長等しいサブシーケンスです[2, 1, 1, 2]。 入力 以下の形式のいずれかの正の整数の空でないリスト: あなたの言語の正の整数の配列のネイティブ実装として 改行で区切られた10進数の整数の文字列として 改行で区切られた単項の整数の文字列として その他の合理的な形式 出力 以下の形式のいずれかで、任意の順序で最長の等しいサブシーケンスのすべて: 言語の2Dネストされた配列として(入力が配列の場合) 等しい要素が連続している平坦化された配列として その他の合理的な形式 得点 私たちは長い間何かを探していますが、これはあることから、使用されるコードは、バイト数の点ではできるだけ短くする必要がありますコードゴルフ テストケース 入力: [1, 2, 3] [1, 2, 2, 1] [1, 2, 3, 2, 1] [1, 2, 1, 2, 3, 4, 1] …

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