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

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

30
アダム・ウェストを称えて
Adam Westは亡くなりました。PPCGに関する彼の記憶に敬意を表したいと思いますが、彼が私たちの存在を知っているかどうかは疑っています。この男は多くのさまざまなことで知られていますが、元のバットマンとしての彼の役割ほど目立つものはありません。私は継父が今でも昔のバットマンとロビンを見続けていることをいつも覚えています。この挑戦は本質的に単純化されており、アダム・ウェストであった複雑な人とはまったく一致していません。しかし、これは男性のキャリアの最も象徴的なイメージであるため、私が考え出すことができる最高のものです。 これを以前に投稿したかったのですが、誰かがもっと良いものを思い付くのを待っていました。 以下を出力します(末尾のスペース/改行の有無にかかわらず): * * **** * * **** **** ******* **** ****** ******* ****** ********* ********* ********* *********************************************** ************************************************* ************************************************* ************************************************* *********************************************** ***** ********************* ***** **** *** ***** *** **** ** * *** * ** これはcode-golfで、最小のバイト数が勝ちます。

30
5お気に入りの手紙
挑戦は実際には非常に簡単です。5つの異なる文字を選択し(必要に応じて最短のコードを許可する5文字を選択できます)、それらをコンソールに出力します。ただし、ツイストは、それらが次のリストからのものでなければならないということです。 AAA BBBB CCCC DDDD EEEEE FFFFF GGG H H A A B B C D D E F G H H AAAAA BBBB C D D EEEE FFFF G GG HHHHH A A B B C D D E F G G H H A A BBBB CCCC DDDD …

30
(x == x + 2)はいつですか?[閉まっている]
課題:x式(x == x+2)が真と評価されるような方法で定義します。 質問にCのタグを付けましたが、創造的であるか、言語の興味深い側面を強調している限り、他の言語での回答も歓迎します。 Cのソリューションを受け入れるつもりですが、他の言語でも投票できます。 正しい-標準に準拠した実装で動作します。例外-基本型の実装を想定し、それが一般的な実装である場合(たとえば、int32ビット2の補数であると想定する)は問題ありません。 シンプル-小さく、基本的な言語機能を使用する必要があります。 興味深い-主観的だと認めます。私が面白いと思うもののいくつかの例がありますが、私はヒントを与えたくありません。更新:プリプロセッサを避けることは興味深いです。 クイック-最初の良い回答が受け入れられます。 60の回答を得た後(そのような参加を期待していませんでした)、それらを要約するのは良いかもしれません。 60の回答は7つのグループに分けられ、そのうち3つはCで実装でき、残りは他の言語で実装できます。 Cプリプロセッサ。#define x 2|0提案されましたが、他の多くの可能性があります。 浮動小数点。大きな数、無限大またはNaNはすべて機能します。 ポインター演算。巨大な構造体へのポインタにより、2を追加してラップアラウンドします。 残りはCでは機能しません。 演算子のオーバーロード- +追加しない、または==常にtrueを返す A。 作成x(一部の言語はせずに、それを許可する関数呼び出しをx()構文)。その後、毎回何か他のものを返すことができます。 1ビットのデータ型。その後x == x+2 (mod 2)。 変更2-一部の言語では、それに割り当てること0ができます。
90 math  arithmetic  c 

30
4、8、15、16、23、42 [閉鎖]
4、8、15、16、23、42 この数列を無限に出力するプログラムを作成します。ただし、ソースコードに番号を表示することはできません。 次は、ソースコードに数字が表示されるため、数字を出力するための有効なJavaプログラムではありません。 class TheNumbers { public static void main(String[] args) { for(int n = 0;;) System.out.println( n == 4 ? n = 8 : n == 8 ? n = 15 : n == 15 ? n = 16 : n == 16 ? n = 23 : n …

30
コードゴルフクリスマス版:高さNのクリスマスツリーを印刷する方法
数字を指定すると、コード文字の最小数を使用してN高さのクリスマスツリーを印刷するにはどうすればよいNですか? Nは、最小値3、および最大値に制限されていると想定されます30(境界およびエラーチェックは不要です)。Nプログラムまたはスクリプトへの唯一のコマンドライン引数として指定されます。 すべての言語は高く評価されています。すでに実装されている言語があり、短くすることができる場合は、可能であれば編集します。明確にするために改行と空白を含めますが、文字数には含めないでください。 クリスマスツリーはそのように生成され、その「トランク」は中央の「*」のみで構成されます。 N = 3: * *** ***** * N = 4: * *** ***** ******* * N = 5: * *** ***** ******* ********* * Nは、1本の幹線を含まない枝の高さを定義します。 メリークリスマスPPCG!

15
C ++で最長のエラーメッセージを生成する
(標準C ++コンパイラでは、可能な限り長いエラーメッセージを生成する短いプログラムを、書くgcc、cl.exe、icc、またはclang)。 各エントリのスコアは、コンパイラが発行した最長のエラーメッセージの文字数です。ソースコードに含まれ、コンパイラによって引用された型は、単一の文字としてカウントされます。 不正行為 長い名前のテンプレートでは、テンプレート内のテンプレートをいつでも再定義できますが、創造的なものを期待しています。私は最後のルールでその一部を防止しようとしましたが、もちろんルールはより良くなる可能性があり、改善ができてうれしいです。

30
BrainF *** edBotsForBattling-Brainf ***トーナメント
バトルアリーナのすべてのボットは突然頭を悩ませ、誰もその理由を説明できません。しかし、彼らがまだ戦うことができる限り誰も気にしません-Brainfuckは彼らがもう理解している唯一の言語ですが。 前回の投稿からしばらく経ちましたので、ついにBrainFuckedBotsForBattlingの勝者を発表します:NyurokiMagicalFantasyで優勝してLymiaAluysiaにおめでとうございます! スコアボード | Owner | Bot Score | |--------------------|-------------------------------| | LymiaAluysia | NyurokiMagicalFantasy - 600 | | Sylwester | LethalLokeV2.1 - 585 | | weston | MickeyV4 - 584 | | Sp3000 | YandereBot - 538 | | Comintern | CounterPunch - 512 | | Sylwester | BurlyBalderV3 - …

30
ECMAScript 6以降でのゴルフのヒント
これは他の「<...>でのゴルフのヒント」に似ていますが、特にECMAScript 6以降で作成されたJavaScriptの新しい機能を対象としています。 JavaScriptは、本質的に、非常に冗長な言語であるfunction(){}、.forEach()などの配列、配列への配列のようなオブジェクトなど、に文字列を変換するスーパーbloatsとゴルフのための健康的ではありません。 一方、ES6 +には、非常に便利な機能があり、フットプリントが削減されています。x=>y、[...x]などはほんの一例です。 コードから余分なバイトを削除するのに役立つ素敵なトリックを投稿してください。 注:ES5のトリックは、JavaScriptのゴルフのヒントで既に利用可能です。このスレッドへの回答は、ES6および他の将来のESバージョンでのみ利用可能なトリックに焦点を当てる必要があります。 ただし、このスレッドは、現在ES5機能を使用してゴルフをしているユーザー向けです。回答には、ES6の機能を理解し、ES5コーディングのスタイルにマッピングするのに役立つヒントも含まれている場合があります。

9
ゴルフアドベントカレンダー
私たちの多くがアドベントカレンダーを手に入れるのは、この時期です!アドベントカレンダーに慣れていない場合、これらはクリスマスを見越してアドベントカウントダウンに使用される特別なカレンダーです。私の経験では、ドアはランダムに配置されており、子供の頃の楽しみの一部は明日のドアがあった場所で解決しました!多くの場合、カレンダーには各ドアの後ろにチョコレートがありますが、今年はアドベントカレンダーを購入する代わりに、ASCIIカレンダーを作成する必要があります。 仕事 n範囲0-の整数()の入力を指定する24と、番号付きのドアが開いたASCIIアドベントカレンダーが生成さnれます。:あなたは、以下の例のように同じ順序を使用しなければなりません2、17、8、12、1、6、11、20、5、22、3、10、15、23、7、16、9、24、18、4、13、19、21、14。 ドア 閉じたドアは次のとおりである必要があります。 .-----------. | | | | | | | nn | |___________| ここnで、ドアの番号を表し(先行ゼロはオプションです)、開いたドアは次のとおりです。 .-----------. |\ | | | | | | | | | | | |_________| \| 代わりにドア24を除きます。 .--------------------------. | | | | | | | 24 | |__________________________| .--------------------------. |\ | | | | …

23
自然のままの世界のプログラミング
そのままのプログラムを、それ自体にエラーはないが、N文字の連続する部分文字列を削除して修正するとエラーになるプログラムとして定義してみましょう1 <= N < program length。 たとえば、3文字のPython 2プログラム `8` 長さ1の部分文字列を削除した結果、すべてのプログラムでエラーが発生するため(実際には構文エラーですが、あらゆるタイプのエラーが発生するため)、初期のプログラム(ありがとう、Sp)です。 8` `` `8 また、長さ2の部分文字列を削除した結果、すべてのプログラムがエラーを引き起こします。 ` ` たとえば、エラーのない`8プログラムであった場合、部分文字列の削除の結果はすべてエラーに`8`なるため、初期状態ではありません。 このチャレンジでのあなたの仕事は、入力を一切受け取らず、次の5つの単語のいずれか1つを出力する、できるだけ短い原始的なプログラムを作成することです。 world earth globe planet sphere どの言葉を選ぶかはあなた次第です。唯一の単語とオプションの末尾の改行を標準出力(または言語の最も近い代替)に印刷する必要があります。バイト単位の最短プログラムが優先されます。 ノート: 機能ではなく、スタンドアロンプ​​ログラムが必要です。 単語は大文字と小文字が区別されます。出力WorldまたはEARTH許可されていません。 コンパイラの警告はエラーとしてカウントされません。 エラーが発生したサブプログラムは、常に最終的にエラーが発生する限り、入力を取得したり、出力を提供したり、その他の処理を実行したりできます。 これは、潜在的に原始的なプログラムでエラーが発生する必要があるプログラムをリストするスタックスニペットです。 <script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>function go() { var s = $('#i').val(), e = []; for (var i = 1; i < s.length; i++) …

14
[クリスマステーマの免責事項はこちら]
MODに注意してください。タイトルが正義を果たさない場合は、何にでも変更してください。面白いと思いました。 あなたはこのクリスマスシーズンの照明を切ることを任されており、あなたの家族はそれをメリークリスマスにするには、少なくとも2つのクリスマスライトを家に掛ける必要があると決めました。したがって、あなたの挑戦は、数字を与えられて、1 < nあなたがぶら下がろうとしているクリスマスライトの対応する数を以下の仕様に従って出力することです... 基本的なクリスマスライトの構造は次のとおりです。 _?_ [___] /:' \ |:: | \::. / \::./ '=' 唯一の不確実な部分は疑問符です。これは、光がチェーンのどこに着地するかによって、接続が大きく異なるためです。 チェーンの最初のライトについては、出力する必要があります: .--._ _(_ [___] /:' \ |:: | \::. / \::./ '=' チェーンの最後のライトについては、以下を出力する必要があります。 _.--. _)_ [___] /:' \ |:: | \::. / \::./ '=' そして、中央のすべてのライトに対して: _.--.--._ _Y_ [___] /:' \ |:: | \::. / …

30
Javaでのゴルフのヒント
Javaで使用できる便利なショートカットはありますか? 以下に示すように、importすでに少なくとも17文字がプログラムに追加されています。 import java.io.*; 簡単な解決策は別の言語を使用することであることを理解していますが、Javaプログラムを短縮することは本当に難しいようです。 ヒントはJavaに固有である必要があります。ほとんどのCライクな言語に適用できる場合は、より一般的なヒントのリストに属します。
86 code-golf  tips  java 

30
うわー、これらのバイトはグロスです
文字列が与えられたときに、できる限り多くの個別のバイトをフィルターし、クリーンな文字列を返すプログラムまたは関数を作成します。ただし、プログラムはそれらを嫌っているので、これらのバイトはあなた自身のコードには存在できません。 スコアは、プログラムが入力から除外する個別のバイト数であり、高いほど良いです。これは、255の最大スコアです(プログラムは最低1バイトでなければならないため)。タイブレーカーはコードの長さであり、低いほど良いです。 たとえば、プログラムがbytesを除外する場合、012345678910のスコアを受け取りますが、プログラム自体にこれらのバイトを含めることはできません。 ルール バイトはオクテットを意味します。 0から255の範囲の値を持つ整数のリストとして入力を受け取るオプションもあります。これらは同等のバイトに対応します。 出力は入力と同じ形式である必要があります ソースコードを読まない コードは空ではない必要があります はい、Lenguage / Unaryの回答があります。しかし、少なくともゴルフはしてください?;) ルールを編集: たとえば、文字列またはEOFの終了バイトと区別できない場合、バイトを無視することを選択できます。ただし、これは、提出物で使用できないこと、およびスコアにカウントされないことを意味します。そうすることを選択した場合、最大スコアは254になりますが、入力にあるそのバイトを処理する必要はありません。

28
画像のピクセルを並べ替えて認識できないようにし、元に戻す
認識できないように画像のピクセルを再配置できるプログラムを作成します。ただし、プログラムは元の画像に戻すことができるはずです。 エンコードとデコード用の2つの関数を作成できますが、繰り返し適用される1つの関数が元の画像(数学の例- f(x) = 1 - x)を提供することはボーナスです。 また、出力に何らかのパターンを作成すると、ボーナスも得られます。 画像は、言語がサポートしている場合、1D / 2D配列または画像オブジェクトとして表されます。ピクセルの順序のみを変更できることに注意してください! 認識しにくい画像を生成する勝者コードとして選択するのは論理的ですが、正確に測定する方法はわかりませんが、想像できるすべての方法をごまかすことができます。したがって、私はこの質問を人気コンテストとして選択しました-ユーザーに最高の答えを選択させてください! テスト画像1(800 x 422 px): テスト画像2(800 x 480 px): コード出力画像を提供してください。

25
空腹のマウス
16個のチーズの山を4x4の正方形に置きます。からまでのラベルが付いています。最小のパイルはで、最大のパイルはです。111161616111161616 空腹のマウスはとても空腹なので、常に最大の山(つまり)に直行し、すぐに食べます。161616 その後、最大の隣接する山に行き、その山もすぐに食べます。(うん...それは本当におなかがすいています。)隣の山がなくなるまで続きます。 パイルには最大8つの隣人(水平、垂直、斜め)があります。ラップアラウンドはありません。 例 以下のチーズの山から始めます。 3615147891101211165134237105681213159114141162\begin{matrix} 3&7&10&5\\ 6&8&12&13\\ 15&9&11&4\\ 14&1&16&2 \end{matrix} ハングリーマウスは最初に食べ、次に最大の隣の山、つまり食べます。161616111111 36151478911012🐭↑5134237105681213159🐭4141↑2\begin{matrix} 3&7&10&5\\ 6&8&12&13\\ 15&9&🐭&4\\ 14&1&\color{grey}\uparrow&2 \end{matrix} その次の移動は、、、、、、、、、及びこの正確な順序で。131313121212101010888151515141414999666777333 🐭↗↓↗←↙↖1↙↑↗↑5←42🐭←↙5↗↙↑←↓↖↗4↗1↑2\begin{matrix} 🐭&\color{grey}\leftarrow&\small\color{grey}\swarrow&5\\ \small\color{grey}\nearrow&\small\color{grey}\swarrow&\color{grey}\uparrow&\color{grey}\leftarrow\\ \color{grey}\downarrow&\small\color{grey}\nwarrow&\small\color{grey}\nearrow&4\\ \small\color{grey}\nearrow&1&\color{grey}\uparrow&2 \end{matrix} Hungry Mouseの周りにはチーズはもうないので、そこで止まります。 挑戦 チーズの初期構成を考えると、ハングリーマウスがそれらを食べるのをやめたら、コードは残りのパイルの合計を印刷または返す必要があります。 上記の例では、予想される回答はです。121212 ルール 入力行列のサイズは固定されているため、2D配列または1次元配列のいずれかとして受け取ることができます。 からまでの各値は、度だけ表示されることが保証されています。111161616 これはcode-golfです。 テストケース [ [ 4, 3, 2, 1], [ 5, 6, 7, 8], [12, 11, 10, …
85 code-golf  matrix 

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