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

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

6
相互ネガティブクイン
これは、触発された、あなたのコードのネガプリントとゴルフ相互QUINE。 以下の制限を満たす文字の長方形を 考えてみましょう。 印刷可能なASCII文字のみで構成されます 両方とも1より大きい寸法 各行と各列には、少なくとも1つのスペースが含まれます。 各行と各列には、少なくとも1つの非スペース文字が含まれています。 たとえば、次は有効な6x4の長方形です。 %n 2e 1 g 3 &* __ 3 この長方形の負の値は、すべてのスペースが非スペース文字で置き換えられ、すべての非スペース文字がスペースで置き換えられた、等しい寸法の長方形であると定義されます。上記の長方形の負の値は次のとおりです。 f ^ 33 > 9 $ ^ }|Q' スペースを置き換えるには、スペース以外の印刷可能なASCII文字を使用できます。 仕事 あなたの仕事は、長方形のソースコードを使用してプログラムを作成し、有効なネガをそれ自体に出力することです。出力されるネガも、オリジナルと同じ言語の有効なプログラムである必要があり、オリジナルのソースを出力する必要があります。 いずれかの出力の末尾にある単一の末尾の改行を除き、末尾の空白は追加または削除できません。これはオプションです。 どちらのプログラムも、どちらのソースコードも読み取ることはできません。また、REPL環境を想定することもできません。 得点 スコアは、コードの次元の積です(つまり、ソースコードが12 x 25の長方形の場合、スコアは12 * 15 = 180です)。さらに、コメントで使用される各文字について、スコアは2増加/* .. */します(コードで1回使用し、コードが10 x 10の長方形にある場合、スコアは10 * 10 + 8 * 2 = 116になります)。 …

7
長方形で地域をカバーする
入力 このチャレンジでの入力は、整数ペアのリストです。それらは平面上の単位正方形の南西の角を表し、リストは平面のサブセットとしての結合を表します。たとえば、リスト [(0,0),(1,0),(0,1),(1,1),(2,1),(1,2),(2,2)] この図の赤色のセットを表します。 出力 Yor出力は、平面の長方形のサブセットを表す整数の4つのリストです。より明確に、(x,y,w,h)四角は、南西隅がである幅w > 0と高さの長方形を表現h > 0し(x,y)ます。長方形は、各単位正方形がいくつかの長方形のサブセットであり、各長方形が領域のサブセットであるという意味で、入力領域を正確にカバーする必要があり、2つの長方形は境界でのみ重なり合う場合があります。些細な解決策を禁止するために、より大きな長方形にマージできる2つの長方形をカバーに含めることはできません。 たとえば、リスト [(0,0,2,1),(0,1,3,1),(1,2,2,1)] 法的カバーを表します 上記の領域の [(0,0,2,2),(2,1,1,1),(1,2,1,1),(2,2,1,1)] 隣接する1行1列の正方形をマージできるため、違法です。 ルール 完全なプログラムまたは機能を提供できます。入力と出力の正確なフォーマットは、理由の範囲内では重要ではありません。最短バイトカウントが優先され、標準の抜け穴は許可されません。アルゴリズムの説明といくつかの出力例を提供することをお勧めします。 テストケース U字型の領域: [(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(1,0),(1,1),(1,2),(1,3),(1,4),(1,5),(2,0),(2,1),(3,0),(3,1),(4,0),(4,1),(4,2),(4,3),(4,4),(4,5),(5,0),(5,1),(5,2),(5,3),(5,4),(5,5)] 大きな三角形: [(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),(0,8),(0,9),(1,0),(1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8),(2,0),(2,1),(2,2),(2,3),(2,4),(2,5),(2,6),(2,7),(3,0),(3,1),(3,2),(3,3),(3,4),(3,5),(3,6),(4,0),(4,1),(4,2),(4,3),(4,4),(4,5),(5,0),(5,1),(5,2),(5,3),(5,4),(6,0),(6,1),(6,2),(6,3),(7,0),(7,1),(7,2),(8,0),(8,1),(9,0)] 穴のある正方形: [(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),(0,8),(1,0),(1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8),(1,9),(2,0),(2,1),(2,2),(2,3),(2,4),(2,5),(2,6),(2,7),(2,8),(2,9),(3,0),(3,1),(3,2),(3,4),(3,5),(3,6),(3,7),(3,8),(3,9),(4,0),(4,1),(4,2),(4,3),(4,4),(4,5),(4,6),(4,7),(4,8),(4,9),(5,0),(5,1),(5,2),(5,3),(5,4),(5,5),(5,7),(5,8),(5,9),(6,1),(6,2),(6,3),(6,5),(6,6),(6,7),(6,8),(6,9),(7,0),(7,1),(7,2),(7,3),(7,4),(7,5),(7,6),(7,7),(7,8),(7,9),(8,0),(8,1),(8,2),(8,3),(8,4),(8,5),(8,6),(8,7),(8,8),(8,9),(9,0),(9,1),(9,2),(9,3),(9,4),(9,5),(9,6),(9,7),(9,8),(9,9)] 切断された領域: [(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),(0,8),(1,0),(1,1),(1,2),(1,3),(1,4),(1,6),(1,7),(1,8),(1,9),(2,1),(2,2),(2,3),(2,4),(2,5),(2,6),(2,7),(2,8),(2,9),(4,0),(4,1),(4,2),(4,4),(4,5),(4,6),(4,7),(4,8),(4,9),(5,0),(5,1),(5,2),(5,3),(5,4),(5,5),(5,6),(5,7),(5,8),(5,9),(6,0),(6,1),(6,2),(6,4),(6,5),(6,6),(6,7),(6,8),(6,9),(8,0),(8,1),(8,2),(8,3),(8,4),(8,5),(8,6),(8,7),(8,8),(8,9),(9,0),(9,1),(9,2),(9,3),(9,7),(9,8),(9,9),(10,0),(10,1),(10,2),(10,3),(10,4),(10,5),(10,6),(10,7),(10,8),(10,9)] 検証者 この Python 2プログラムを使用して、ソリューションを検証します。STDINから、コンマで区切られたタプルのリスト(入力)と4倍のリスト(出力)を受け取ります。 また、この Python 2プログラムを作成して写真を生成しましたが、これも使用できます。STDINからタプルまたは4つのいずれかのリストを取得し、という名前のファイルを生成しますout.png。PILライブラリが必要です。必要に応じて、グリッドセルのサイズとグリッド線の幅も変更できます。

9
与えられた方程式が真である基底を決定する
3つの整数が与えられた場合、最初の2つの整数が3番目の整数に乗算するための可能な最小の基底を決定します。生命、宇宙、そしてすべての究極の質問に対する答えを考えるなら、6 * 9 == 42はベース13に当てはまります。 入力には、数字が0〜9、a〜z、およびA〜Zを使用する任意の数字を含めることができます。ここで、a基数10では10、基数10ではZ61です。 入力は任意の方法で入力する必要があり(ハードコーディングを除く)、個々の関数またはプログラム全体を記述できます。 考慮しなければならない最大ベースはベース62、最小ベースはベース2です。 最初の2つの値は3番目の値よりも小さいと仮定できます。また、最小基数は入力の最上位桁/文字よりも1つ大きいと結論付けることができます(たとえば、入力がの3 1a 55場合、最小基数はa最上位桁であるためBase 11になります)。 そのようなベースがない場合、選択したジャンク値を返します。 これはコードゴルフなので、最短のコードが勝ちます。 テストケース 6 9 42 --> 13 a a 64 --> 16 aA bB 36jk --> 41 2 3 20 --> <junk value> 10 10 100 --> 2

9
シーザーサイファーマニア
シーザーサイファーは、各文字が固定された(AとZの周りにループ)オフセットだけシフトされた非常に単純な換字式暗号です。同様に、印刷可能なASCII文字のセットに対してCaesar暗号を使用することもできます。これらは、コードポイント0x20から0x7Eまでの95文字です。与えられたoffsetに対してd、コードポイントCを (C - 32 + d) % 95 + 32 これは、すべての文字をaだけシフトdし、~からスペースにループします。この範囲外の文字(改行、タブ、ASCII範囲外の文字などの制御文字)は影響を受けません。 オフセットdと文字列をとる2つのプログラムまたは関数を(場合によっては異なる言語で)作成します。最初のプログラムは、入力のシーザー暗号を返すか印刷する必要があります。2番目のプログラムは、逆シーザー暗号を返すか印刷する必要があります(つまり、offsetを使用-d)。STDIN、コマンドライン引数、または関数引数を介して入力を受け取ることができます。 物事をより面白くするために、2番目のプログラムは最初のプログラムのシーザー暗号でなければなりません。つまり、最初のプログラムのソースコードを自身に渡す場合、ゼロ以外のオフセットのd場合、出力は2番目のプログラムでなければなりません。 両方のプログラムと入力文字列には、印刷可能なASCII文字、改行、タブのみを含める必要があります。どちらのプログラムにもコメントを含めたり、独自のソースコード、ファイル名、プロセスIDを直接または間接的に読み取ることはできません。 これはコードゴルフなので、最短の回答(バイト単位)が勝ちです。両方のプログラムのサイズは同じである必要があるため、カウントする必要があるのは一度だけです。

14
丸められていない分数
分数を10進数に変換し、その数値を格納する場合、特定の量のメモリのみを使用するため、多くの場合、丸める必要があります。5桁の10進数しか保存できないとすると、5/3は1.6667になります。2桁の10進数しか保存できない場合は、1.7になります(常に0〜9.99の間にあると仮定します...)。 1.7でそのプロセスを逆にしようとして、端数を取り戻したい場合、1.7は丸められた数値にすぎないことがわかっているため、それは難しい場合があります。もちろん、17/10を試すこともできますが、それは「エレガントな」5/3と比べてかなり「ugい」部分です。 そのため、目標は、分母bが最小の分数a / bを見つけることです。これにより、正しく丸められたときに丸められた10進数が得られます。 詳細 入力には、0(含む)から10(含まない)の「。」の1から5桁までの数字の文字列が含まれます。最初の数字の後。n桁数を表すとしましょう。出力は[numerator, denominator]、分子が非負で分母が正である2つの整数のリスト/配列または合理的なデータ型(独自に作成するか、組み込みを使用できます)である必要があります。分数の分子/分母は、n数字(n-1小数点以下の数字を意味する)に正しく丸められる場合、入力と等しくなければなりません。 制限:許可されるループステートメントは1つだけです。つまり、コード全体で単一のループステートメント(foror whileまたはgotoetcなど、およびリスト/配列のすべての要素にコードを適用する、mapまたはfoldそのような機能ループ)のみを使用できますが、それを「乱用」することは自由ですまたは再帰などを使用します 関数を作成する必要があります。言語に関数がない場合(またはある場合でも)、入力が変数(またはstdin経由の入力)に格納されていると仮定して、結果を出力するか、ファイルに書き込むことができます。最も少ないバイト数が優先されます。 丸め 丸めは「従来の」丸め規則に従う必要があります。つまり、切り捨てられる最後の数字が5以上の場合、切り上げ、他の場合は切り捨てます。たとえば、 四捨五入すると4.5494になります 1桁:5 2桁:4.5 3桁:4.55 4桁:4.549 例 次のテストケースとその他の「興味深い」テストケースを含めてください。 Input 1.7 Output 5/3 Input 0. Output 0/1 Input 0.001 Output 1/667 Input 3.1416 Output 355/113

2
DNA:デオキシリボ核酸ASCII
アデニン、シトシン、グアニン、およびチミンの塩基のシーケンス(としてエンコードACGT)を指定すると、対応するDNAの2本鎖のASCIIアート表現を生成することになります。 ストランドは垂直に伸びます。左側のストランドは、入力として指定されたストランドです。右側の鎖はその補数になります。DNAに精通していないものについては、Aと対になっているTとCして対になっていますG。さらに、すべての塩基で同一である二本鎖の両側に骨格構造があります。したがって、入力が与えられた場合TAGCAT、ASCIIアートの大規模な構造は次のようになります。 BTAB BATB BGCB BCGB BATB BTAB ここでBバックボーンを表します。これらの文字はそれぞれ分子全体を表していて、実際の分子構造を再現しています。 拠点 各塩基に対して次のテンプレート1を使用します(各塩基は、相補的な塩基と2つの骨格分子とともに表示されます)。 1 ASCIIレイアウトを手伝ってくれたPeter Taylorの功績。 アデニン O O \\ / P / \ --O O / | < N NH2 ..... O * | \ // \ / \\ / | +--O // ---- ---- | | \ | // \\ …

20
コードを組み合わせロックにクラックする
写真のような標準の組み合わせロックを考えてみましょう。ロックを解除する方法は、組み合わせ行のコードの4つの数字を揃えることです。長年の忠実なサービスの後、あなたはロック工場から解雇され、ロックを送り出す前にジャムをしないことで正確な復geを決定しました。 また、他の行の数字の順序を確認することで、組み合わせ行にある数字を決定することができることを知っています(したがって、ロックを解除する組み合わせがあります)。 ロックのすべての行に、組み合わせ行(ロックを解除する行)の行0から行9までの番号が与えられている場合。たとえば、行4の番号がの場合、5336ロックを解除する組み合わせはになります1992。 残念ながら、ロックはすでにパッケージ化されており、各ロックの表示が不明瞭になっているため、ロックの異なる行の数字しか見ることができません。 チャレンジ 整数の最初の桁が行番号を表し、2番目の桁がその行に表示される番号を表す4桁の数字が与えられたら、ロックへの組み合わせを計算します。たとえば、次を入力した場合: 57 23 99 45 次に、出力する必要があります: 2101 または 25 78 63 15 そして 3174 入力は常に `25 64 72 18の形式の4つの正の整数であると仮定します。 これはcode-golfであるため、バイト数の最も短いプログラムが優先されます。 また、これは私の最初の質問ですので、フィードバックを歓迎します。
22 code-golf 

1
2次元リストを45度回転する
仕事 目標は、2次元のリストを45度回転するプログラムを作成することです。リストを返す前に、これを最大7 * 45(一度に)実行できる必要があります。リストは必ずしも正方形または長方形であるとは限りません。回答に例の出力を含める必要があります。また、円、三角形などの例にないケースでも機能する必要があります。既存の関数を使用してすべてを行うことはできません。 すべてのリストには、少なくとも1つの対称軸(N、S、E、W)があります。すべてのサブリストは中央揃えであると想定されます。奇数/偶数リストは、適切に整列するために左にシフトします。サブリストの中央のギャップについては、例4を参照してください。 入力 プログラムはl、リストを含むという名前の変数と、リストのn回転量を指定するという名前の変数(n * 45)を使用します(n常に7未満で、0にすることができます)。l印刷可能なデータ型(10進数、List、int、String [] ..など)のサブリストを含むことを受け入れる必要がありますが、サブリストには一度に1つのデータ型しか含まれません。 コンソール入力を受け入れる必要も、stdinを使用する必要もありません。lおよびのテスト値を指定する行nは、文字カウントには含まれませんが、送信されたコードに含める必要があります。 出力 プログラムは正しい向きでリストを印刷する必要があります。必要に応じてリストをパディングするためにNILを使用できますが、パディングは必要ありません(ただし、パディングされている場合は笑顔が得られます)。サブリストは、例のようにインデントしたり、改行で区切る必要はありません。 例 1 IN l= [[0 , 1 , 2], [3 , 4 , 5], [6 , 7 , 8]] n=1 OUT [ [0], [3 , 1], [6 , 4 , 2], [7 , 5], [8] ] …
22 code-golf 

3
エピサイクロゴンの描画
外サイクロイドは、それは別の円の周りを転がるよう円周上の点が作る曲線です。cyclogonは上の点形状である正多角形は、それが面を横切って転がるようになります。epicyclogonは、それが他の周りに転がるように、1つの正多角形上の点でトレースした曲線です。 与えられたepicyclogonを描画するプログラムを書きますr、r1、r2、n1、n2: r = number of clockwise revolutions rolling polygon makes around stationary polygon (any real number as limited by float values) r1 = distance from center of stationary polygon to each of its vertices (positive real number) r2 = distance from center of rolling polygon to each of its …

5
2014年世界IPv6デー
世界IPv6デーの記念日をマークするために、インターネット協会はOne Dayの2014年6月6日にIPv4を止めるキャンペーンを発表しました。 IPv6アドレスは、コロンで区切られた8つの16ビット16進値として長い形式で表されます。アドレスに応じて、RFC 3513のセクション2.2 アドレスのテキスト表現の項目2で説明されているように、短縮することもできます。 ゼロビットを含むアドレスの書き込みを容易にするために、ゼロを圧縮する特別な構文が利用可能です。「::」の使用は、16ビットのゼロの1つ以上のグループを示します。「::」は、アドレスに一度しか表示できません。「::」は、アドレスの先頭または末尾のゼロを圧縮するためにも使用できます。 このチャレンジのエントリは、長い形式または短い形式のいずれかでフォーマットされたIPv6アドレスを1つだけ受け入れ、長い形式と短い形式の両方で同じアドレスをこの順序で表示するプログラムです。 入力は、コマンドライン引数、STDIN、または選択した言語に適した他の入力ソースからのものです。 IPv6アドレスの解析専用のライブラリまたはユーティリティは禁止されています(inet_ {ntop、pton}()など)。 入力アドレスが無効な場合、出力は空になります(または、アドレスが無効であることを示す適切なエラーメッセージが表示されます) ::短縮が発生する場合、特定のアドレスに対して1つの短縮操作のみが発生する場合があります。特定のアドレスに対して複数の潜在的な短縮操作がある場合、全体の最短アドレスを提供する操作を使用する必要があります。この点で同点がある場合は、最初の操作が使用されます。これを以下の例に示します。 回避すべき標準的な抜け穴 例: Input Output 1080:0:0:0:8:800:200C:417A 1080:0:0:0:8:800:200C:417A 1080::8:800:200C:417A FF01::101 FF01:0:0:0:0:0:0:101 FF01::101 0:0:0:0:0:0:0:1 0:0:0:0:0:0:0:1 ::1 :: 0:0:0:0:0:0:0:0 :: 1:0:0:2:0:0:0:3 1:0:0:2:0:0:0:3 1:0:0:2::3 1:0:0:8:8:0:0:3 1:0:0:8:8:0:0:3 1::8:8:0:0:3 1:2:3:4:5:6:7:8 1:2:3:4:5:6:7:8 1:2:3:4:5:6:7:8 ABCD:1234 <Invalid address format - no output> ABCDE::1234 <Invalid address format - no …

7
家系図ソルバー
これは、カルバンの趣味によってコミュニティに残されたいくつかの課題の1つです。 次の形式の行を含む「家系図」ファイルを取得します。 [ID] [mother ID] [father ID] [gender] [full name] このようなhttp://en.wikipedia.org/wiki/Cousinの最初の家系図について説明します。 1 ? ? M Adam 2 ? ? F Agatha 3 ? ? M Bill 4 2 1 F Betty 5 2 1 M Charles 6 ? ? F Corinda 7 3 4 M David 8 6 5 F …

4
誰がコルモゴロフの複雑さの勝者になりたいですか?
今日の使命は、テキストコンプレッサーを発明することです。 仕事 次の2つの関数を作成します。 パッカーは、 ASCII文字(U + 007FにU + 0000)の文字列を受け取り、可能な最も少ない文字を含む、Unicode文字列(U + 10FFFFにU + 0000)を出力する機能です。 アンパッカーは、エンコードされたUnicode文字列を受け取り、正確に元のASCII文字列を出力する関数です。 入力 許可される入力は、ASCII文字列(パッカー用)とパックされたUnicode文字列(アンパッカー用)のみです。ユーザー入力なし、インターネット接続なし、ファイルシステムの使用なし。 あなたの関数はこの英語の単語のリストにアクセスできます。このリストをローカルのtxtファイルとして使用するか、ソースコードのコンテンツを文字列または文字列の配列としてコピーできます。 以下のスニペットを関数にハードコーディングすることはできません。 出力 両方の関数の唯一の許可された出力は文字列です。 アンパッカーの出力には、パッカーの入力とまったく同じ文字が含まれている必要があります。 入力と出力は、すべてのUnicode(UTF-8 / 16/32、GB18030、...)をサポートする任意の文字エンコードを使用できます。スコアは出力内のUnicode文字の数にのみ依存するためです。ただし、使用しているエンコードを正確に指定してください。 出力内のUnicode文字の数をカウントするには、次のツールを使用できます。http://mothereff.in/byte-counter 得点 エントリは、次の10個のテキストスニペット(このフォーラムで取り上げたもの)をパックおよびアンパックできる必要があります。 スコアは、10個のパックされた文字列のサイズ(Unicode文字)+ 2つの関数のサイズ(Unicode文字)の合計になります 辞書を使用する場合は、辞書のサイズをカウントしないでください。 エントリには、各スニペットの「スコア」とパックバージョンを含めてください。 最低スコアが勝ちます。 データ スコアを計算するためにエンコードするスニペットは次のとおりです。 1:Rick Rollの歌詞(1870b):ゴルフをコーディングするのは見知らぬ人ではありません。ルールを知っているので、私もそうです。 私たちは愛する見知らぬ人ではありません あなたはルールを知っているので、私もそうです 完全なコミットメントが私が考えていることです 他の男からこれを取得することはありません 私の気持ちを伝えたいだけです 理解させる あなたをあきらめるつもりはありません 失望させない 走り回ってあなたを捨てない 泣かないで さよならを言うつもりはない 嘘をついて傷つけない 私たちは長い間お互いを知っていました あなたの心は痛むが …

29
最も近い回文数を見つける
数値Nを指定すると、N + Xが回文構造になるようにXを出力/返します。ここで、| X | できるだけ小さくする必要があります。 パリンドローム:数字は、左から右に読むときと右から左に読むときの数字の順序が同じである場合、回文です。 95359と6548456対称で123あり、そうで2424はありません。先行ゼロなどの数字020は回文ではありません。 入力は10 15より小さい正の整数です。メソッドパラメータとして、何でもstdinから読み取ります。 出力は整数(正または負)でなければならず、入力がすでに回文である場合は0でなければなりません。出力をstdoutに書き込んで、関数または任意の関数から返すことができます。要件を満たす2つの数値(2と-2)がある場合、そのうちの1つだけを出力します。 例: Input Output 3 0 234 -2 1299931 -10 126 5 or -5 (only one of them)

4
Brainfuckの縮小
次のルールに従って、Brainfuckコードを最小化することが課題です。 以外のすべてを削除し+-><[].,ます。 連続した文字+または-文字のグループで、+sと-sの量が同じ場合は、それらを削除します。 上記と同じですが、>とを使用し<ます。 +-><何もしない場合は、文字のシーケンスを削除します。たとえば、を削除する必要があります+>-<->+<。(これは実装するのが最も難しく、最も難しいものかもしれません。)のような誤検知が出ないよう+>-<+>-<にしてください。 テストケース: 入力 ++++++[->++++++<]>. prints a $ [-]< resets tape >,[>,]<[.<] reverses NUL terminated input string ++-->><< does nothing 出力 ++++++[->++++++<]>.[-],[>,]<[.<] 入力 Should disappear: ++>>+<+++<->-->-<<->-< Should disappear: +++>-<--->+< Should stay: +++>-<+>---< 出力 +++>-<+>---< 必要に応じて入力と出力を受け入れることができます-stdin / stdout、関数など。ただし、入力はハードコードされない場合があります。 これはcode-golfであるため、文字数の最も短いコードが優先されます。

4
暗号化されたクイネ亜種
ソースのMD5合計を次の形式で出力するプログラムを作成します。 MD5 sum of my source is: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 不正行為はありません。ソースファイルを読み取ってその合計を計算することはできません。プログラムは外部情報を読み取ってはなりません。 もちろん、あなたの言語で利用可能なMD5ライブラリを使用できます。

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