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

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

15
量子酔っぱらいの散歩
アルコールの影響下にあるグリッド上の人が、利用可能な方向に進む可能性があることはよく知られています。ただし、この常識的な声明は非常に小さな酔っぱらいの領域には当てはまらず、その行動はまるで利用可能なすべてのパスを一度に取るかのようであり、可能なパスが互いに干渉する可能性があります。あなたの仕事は、nステップの後にそのような量子酔っぱらいの可能な位置を表示することです。 仕様 問題の酔っぱらいは正方形のグリッドを占有し、これらの単純な規則に従うフォンノイマン(プラス型)近傍を使用する3状態セルオートマトンと見なすことができます。 Empty行くAwake、それは正確に一つに隣接している場合はAwake、それ以外に行きますEmpty Awake に行く Sleeping Sleeping に行く Sleeping ボードの初期状態は、sのAwake無限フィールドに囲まれた単一の状態ですEmpty。 チャレンジ 非負の整数nを指定すると、nステップの後に酔っぱらいのASCII表現を作成します。各状態は異なる文字で表される必要があり、ソリューションはどの文字がどの状態を意味するかを示す必要があります。にスペースを使用する場合Empty、行末にそれらの実行を含める必要はありません。 これはcode-golfなので、最短の回答が勝ちます。標準の抜け穴が適用され、先頭および末尾の空白が許可され、文字列配列/ 2d文字配列出力が許可されます。 例 これらの例では、for Empty、@for Awake、および#for を使用していSleepingます。 n=0 @ n = 1 @ @#@ @ n = 2 @ # @###@ # @ n = 3 @ @#@ @ # @ @#####@ @ # @ @#@ @ …

23
PPCGプライムを出力する
これはPPCG Primeです 624桁の長さ 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777111111111111111111111111111111111111111111111111111111111111111111111111111111188888888118888888811188888811188888811188111118818811111881881111881881111881188111118818811111881881111111881111111188888888118888888811881111111881118888188111111118811111111881111111881111881188111111118811111111881111881881111881188111111118811111111188888811188888811111111111111111111111111111111111111111111111111111111111111111111111111111111333333333333333333333333333333333333333 39桁ごとに分割すると、 777777777777777777777777777777777777777 777777777777777777777777777777777777777 777777777777777777777777777777777777777 777777777777777777777777777777777777777 111111111111111111111111111111111111111 111111111111111111111111111111111111111 188888888118888888811188888811188888811 188111118818811111881881111881881111881 188111118818811111881881111111881111111 188888888118888888811881111111881118888 188111111118811111111881111111881111881 188111111118811111111881111881881111881 188111111118811111111188888811188888811 111111111111111111111111111111111111111 111111111111111111111111111111111111111 333333333333333333333333333333333333333 あなたの仕事はPPCG-Primeを出力することです これはcodegolfです。バイト単位の最短コードが勝ちます。 以下のMathematica関数でPPCG-Primeを入力すると、この結果が得られます ArrayPlot@Partition[IntegerDigits@#,39]&

30
戦争は平和です。自由は奴隷です。無知は強さ
ジョージ・オーウェルが書いた1984: 戦争は平和です自由は奴隷です無知は強さです Orwell引用から6つの主要な単語の1つを取り込んで対応するものを出力するプログラムまたは関数を作成します。 具体的には: [input] -> [output] war -> peace peace -> war freedom -> slavery slavery -> freedom ignorance -> strength strength -> ignorance 他の入出力ペアは必要ありません。 上記のように、単語は常に完全に小文字であると想定する必要があります。:別の方法として、あなたは言葉は常に完全に大文字であると仮定してWAR -> PEACE、PEACE -> WARなど バイト単位の最短コードが優先されます。

10
デニス番号を生成する
この挑戦は、プログラミング言語のクイズの強盗の部分を獲得したPPCGユーザーデニスへのオマージュです。 見てみるとデニスのPPCGのプロフィールページ我々はいくつかの非常に印象的なものを見ることができます: 現在、彼の評価は6万8000を超えており、全体で2 位になり、3位をほぼ3万回超えています。彼は最近、新しいモデレーターの選挙に勝ち、彼の名前の隣に輝く新しいダイヤモンドを得ました。しかし個人的には、デニスの最も興味深い部分は彼のPPCGユーザーID番号である12012です。 一見パリンドロームの12012ように見えますが、逆にすると同じ数字になりますが、少しずれています。それは回文になることができ、我々は最初の位置を入れ替えた場合と、それが回文になることができ、我々は最後のスワップ場合とを。また、数字の先頭のゼロが書き込まれないという規則に従って、最初の結果と結果を交換するか、どちらが別の回文です。2101212120211210021122112 デニス数を、回文自体ではなく、任意の2桁の少なくとも1組の位置を交換することで回文にすることができる正の整数として定義しましょう。デニス番号の順序は、パリンドローム(必ずしも区別されない)を作成するために交換できる数字の個別のペアの数です。 だからの順序は12012、その数字の3 3が異なる対である(12012、、)回文を生成するために周りに交換することができます。たまたま最小の3デニス数です。120121201212012 10は最小のデニス数で、順序1を持ちます。これは、1と0を切り替えると、回文である01aka 1が得られるためです。 数字の虚数の先行ゼロは、切り替え可能な数字としてカウントされません。たとえば、回文を取得するために最初の2桁に変更8908し08908て交換すること80908は無効です。8908デニス番号ではありません。 デニス以外の番号の順序は0であると言えます。 チャレンジ 正の整数Nを取り込んで、N番目に小さいデニス数とその順序を、12012 3またはなどの合理的な形式で出力するプログラムまたは関数を作成します(12012, 3)。 たとえば12012、774番目のデニス番号であるため774、プログラムへの入力である場合、出力はのようになります12012 3。(奇妙なことに、774は別のデニス番号です。) バイト単位の最短コードが優先されます。 参照用の最初の20デニス番号とその順序は次のとおりです。 N Dennis Order 1 10 1 2 20 1 3 30 1 4 40 1 5 50 1 6 60 1 7 70 1 8 80 1 9 90 1 …

30
Aのない手紙A
あなたの仕事は、文字「A」を単独で表示することであり、プログラムやスニペットでそうすることを避けられない場合、後続の改行の形を除いて、何も表示しません。(印刷の代わりに)戻るコードが許可されます。 文字「A」の小文字と大文字の両方が受け入れられます(つまり、ユニコードU + 0061またはユニコードU + 0041です。ユニコードではない他の文字エンコードは許可されますが、どちらにしても、コードの結果出力はラテン文字「A」であり、類似またはホモグリフではない) あなたは必要がありません関係なく、あなたが選ぶ文字エンコーディングの、あなたのコードで以下のいずれかの文字を使用します。 「A」、大文字または小文字。 「U」、小文字または大文字。 X(大文字または小文字)。 + & # 0 1 4 5 6 7 9 不正行為、抜け穴などは許可されません。 これはcode-golfであるため、すべての規則に従う最短の解決策(バイト単位)が勝者です。 有効性チェッカー このスタックスニペットは、コードが制限された文字を使用していないことを確認します。一部の文字エンコーディングでは適切に動作しない場合があります。 var t = prompt("Input your code."); if (/[AaUuXx+&#0145679]/.test(t)) { alert("Contains a disallowed character!"); } else { alert("No disallowed characters"); } コードスニペットを実行する結果を非表示スニペットを展開 許可されていない文字がないことを確認するこのスタックスニペットは、JSFiddleでも利用できます。 リーダーボード コードスニペットを表示 var QUESTION_ID=90349,OVERRIDE_USER=58717;function …

30
1分待つ– 10秒以内に
仕事 あらゆるタイプの並列化を使用して、少なくとも1分間(ただし1分半未満)の合計スリープ時間まで、複数の期間待機します。 プログラム/関数は、10秒以内に終了し、2つの値(すべての手段および形式)を返す必要があります。合計経過時間と実行された合計スリープ時間です。両方の時間値には、少なくとも0.1秒の精度が必要です。 これは工数の概念に似ています。60時間かかるジョブは、10人の作業者がジョブを分割している場合、わずか6時間で完了できます。ここでは、たとえば10個の並列スレッドで60秒のスリープ時間を設定できるため、ジョブ全体を完了するのに6秒しか必要ありません。 例 プログラムMyProgramは14個のスレッドを作成し、各スレッドは5秒間スリープします。 MyProgram → [5.016,70.105] 実行時間は5秒を超え、総スリープ時間はオーバーヘッドのために70秒を超えます。

8
スクエア、サークル、トライアングル、…ギア?
AlgodooとPaintを使用して、次の4つの便利な形状の6つの300×300モノクロ画像を作成しました。 このクラスの画像には、次のプロパティがあります。 これらは常に300×300ピクセル、単色(白黒のみ)で、正方形、円、三角形、歯車に対応する正確に4つの白い領域があります。 シェイプが互いに重なり合ったり、接触したりすることはありません。また、画像の境界に接触したり、境界から外れたりすることもありません。 形状のサイズは常に同じですが、任意の方法で回転および配置できます。 (シェイプの面積も等しくなりますが、このようにラスタ化すると、ピクセル数が正確に等しくなる可能性は低くなります。) チャレンジ そのような画像のファイル名を取り、すべての白いピクセルを回す可能な最短のプログラムまたは関数を書きます... (255, 0, 0)正方形にある場合は赤。 (0, 0, 255)サークル内にある場合は青。 (0, 255, 0)三角形の中にある場合は緑。 (255, 255, 0)ギアにいる場合は黄色。 例えば 詳細 プログラムは、考えられるすべての入力画像に対して効果的に機能するはずです。(有効な300×300のモノクロ画像のみが入力されます。)私が提供した6つの画像は単なる例であり、プログラムに出力をハードコードすることはできません。 組み込みまたは外部のコンピュータービジョンライブラリまたは関数を使用することはできません。ポイントは、独自のピクセルレベルの操作を使用してこれを行うことです。画像を簡単に開いて変更できる画像ライブラリを使用できます(例:PIL for Python)。 カラースキームに固執する限り、入力および出力に一般的なロスレス画像ファイル形式を使用できます。 画像ファイル名を関数の引数として、stdin、またはコマンドラインから取得できます。出力画像は、新しいファイル、同じファイルに保存するか、単に表示することができます。 得点 最少バイトの送信が勝ちです。追加の画像を使用して提出物をテストし、それらの有効性を判断できます。

21
魚の解釈(いいえ、その魚ではありません)
次の5つのASCIIアートの海の生き物を考えてみましょう。 標準魚:><>または<>< スピーディな魚:>><>または<><< 丈夫な魚:><>>または<<>< 伸縮性のある魚:><<<>または<>>>< カニ: ,<..>, 任意の文字列を受け入れるプログラムを作成します<>,.。文字列全体を重複しない一連の海の生き物として解釈する方法がある場合、文字列は、生き物間に単一のスペースを挿入して再印刷する必要があります。この解釈が不可能な場合は、何も出力すべきではありません(プログラムは静かに終了します)。 たとえば、文字列<><><>は2つの標準的な魚を連続して解釈できます。対応する出力はになります<>< ><>。 別の例として、文字列に><>><>>は「...」の「インスタンス」が含まれます (括弧はインジケータとしてのみ追加されます) いくつかの標準的な魚: [><>][><>]> スピーディな魚: ><[>><>]> いくつかの方法で頑丈な魚:[><>>]<>>と><>[><>>] ただし、標準の魚と頑丈な魚のペアリングのみ[><>][><>>]が、文字列の長さ全体に広がり、魚を共有する文字はありません(重複はありません)。したがって、に対応する出力><>><>>は><> ><>>です。 文字列の解釈方法が複数ある場合は、それらのいずれかを印刷できます。(そして、そのうちの1つだけを印刷します。)たとえば<><<<><、標準の魚と頑丈な魚:[<><][<<><]、または高速の魚と標準の魚:として解釈できます[<><<][<><]。したがって、どちら<>< <<><か<><< <><が有効な出力になります。 カニはただの楽しみです。彼らは開始かで終わらないので<または>、彼らは(少なくとも視覚)を識別する方がはるかに簡単です。たとえば、文字列 ,<..>,><<<>,<..>,><>,<..>,<>>><,<..>,><>>,<..>,<<><,<..>,<><,<..>,>><> 明らかに出力を生成します ,<..>, ><<<> ,<..>, ><> ,<..>, <>>>< ,<..>, ><>> ,<..>, <<>< ,<..>, <>< ,<..>, >><> 出力を生成しない文字列の例(1行に1つ)を次に示します。 <><> ,<..>,<..>, >>><> ><<<<> , ><><> ,<><>, <<<><><<<>>><>><>><><><<>>><>><>>><>>><>><>><<>< 先頭の文字列を削除すると、ここの最後の文字列を解析できます<。 <<>< …

18
BattleBots:トーナメント
結果が出て、コンテストは終了しました。 勝者はarshajiiの EvilBotで、14勝でNeo-Botが13勝、CentreBotとLastStandがそれぞれ11勝です。 最終ランからのスコア Results: java Rifter: 9 match wins (45 total bout wins) java EvadeBot: 10 match wins (44 total bout wins) java EvilBot: 14 match wins (59 total bout wins) java LastStand: 11 match wins (43 total bout wins) java UltraBot: 9 match wins (40 total bout wins) …

30
プログラミング言語のアルファベット
私たちの仕事は、(英語の)アルファベットの各文字について、その文字で始まる名前の言語でアルファベットを印刷するプログラムを書くことです。 入力: なし 出力: abcdefghijklmnopqrstuvwxyz 大文字と末尾の改行オプション ルール: 採点メトリックは、プログラミング言語の長さである名前、プラスコードの長さ。したがって、Cは1の「ペナルティ」と評価され、GolfScriptは10のペナルティと評価されます。 回答ごとに1つの言語/実装。複数の回答が推奨されます。 プログラミング言語は、2011年4月18日にこの投稿を書く前に存在していたはずです。 プログラミング言語の名前の最初の文字が英語の文字でない場合、強制的に英語にしないでください。それは別の手紙として扱われます(より少ない競争を意味する)。 すべての英文が解決するまで、回答は受け付けられません。 現在のランキング: PL:5 Bの灰:20 C:35 dは C:19 E:27 Fの ISH:20 Gオルフスクリプト:18 Hアスケル:28 I O:33 J:15 K:13 L ogo:30 M atlab:19 Nイム:34 O wl:14 P erl:14 Q基本:35 R uby:17 S MBF:14 T cl:34 U nixシェル:31 V im:12 Wの AKE:37 X …

10
ロック、ポリグロット、はさみ
じゃんけんをする3言語の多言語のプログラムを作成します。 プログラムの任意のバージョンの入力は、常に文字列rockまたはpaperorのいずれかscissorsです。 最初の言語では、プログラムは入力に勝るじゃんけんの選択肢を出力する必要があります。 Input Output rock paper paper scissors scissors rock 第2言語では、プログラムは入力を結び付けるじゃんけんの選択肢を出力する必要があります。 Input Output rock rock paper paper scissors scissors 第3言語では、プログラムは入力に負けたじゃんけんの選択肢を出力する必要があります。 Input Output rock scissors paper rock scissors paper バイト単位の最短コードが優先されます。Tiebreakerは、より高い投票率の回答です。 入力および/または出力にはオプションで末尾の改行を含めることができますが、それ以外の場合はプレーンrock/ paper/ scissors文字列のみにする必要があります。必要に応じて、大文字ROCK、を使用できます。PAPERSCISSORS 同じ言語の異なるバージョン(Python 2と3など)を使用することはできません。

5
機械学習ゴルフ:乗算
このコミュニティに異なる種類のゴルフチャレンジを提案したいと思います。 (人工)ニューラルネットワークは、与えられた(通常は未知の)関数を近似するように設計およびトレーニングできる非常に一般的な機械学習モデルです。彼らは多くの場合、ニューラルネットワーク上のプライマーのために...私たちは、音声認識、画像分類の特定の種類、自律走行システムでは、さまざまなタスクのようにアルゴリズム的解決する方法がわからない、非常に複雑な問題を解決するために使用しているこの素晴らしいを考えますウィキペディアの記事。 これが一連の機械学習のゴルフチャレンジになりたいと願う最初のものであるため、できるだけシンプルなものにしたいと思います。 選択した言語とフレームワークで、与えられた)がと間(を含む)のすべての整数積を計算するニューラルネットワークを設計およびトレーニングします。(x1、x2)(x1,x2)(x_1, x_2)バツ1⋅ X2x1⋅x2x_1 \cdot x_2バツ1、x2x1,x2x_1, x_2− 10−10-10101010 パフォーマンス目標 資格を得るために、モデルはこれらのエントリの正しい結果からを超えて逸脱することはできません。0.50.50.5 ルール あなたのモデル 「従来の」ニューラルネットワークである必要があります(ノードの値は、前のレイヤーのノードの一部の重み付き線形結合と、それに続く活性化関数として計算されます)、 次の標準アクティベーション関数のみを使用できます。 線形(x )= xlinear(x)=x\textrm{linear}(x) = x、 softmax( x⃗ )私= eバツ私∑jeバツjsoftmax(x→)i=exi∑jexj\textrm{softmax}(\vec{x})_i = \frac{e^{x_i}}{\sum_j e^{x_j}}、 セルα 、β(x )= { β⋅ Xα ⋅ β(eバツ− 1 )、x > 0の場合 、 そうでなければseluα,β(x)={β⋅x, if x>0α⋅β(ex−1), otherwise\textrm{selu}_{\alpha, \beta}(x) = \begin{cases} \beta \cdot …

18
ルーベゴールドバーグハローワールド
このゴルフでは、複数の言語を使用する必要があります。 タスク ルーブ・ゴールドバーグ・マシンは、非常に単純なタスクを実行するために複雑なステップの膨大な数を取るからくりです。このゴルフの目標は、出力することRube Goldbergですが、直接ではありません。 この機械 「マシン」とは、一度実行されると、Rube Goldberg実行時に出力される別の言語の別のソースコードを提供するソースコードです。とった? 言い換えると、初期コードは別のコードを提供する必要があり、他のコードは出力する必要がありますRube Goldberg。両方のコードは異なる言語で作成する必要があります。 それを行う唯一の楽しい方法のようなボーナス コードが出力するコードを出力する場合、ボーナスがありますRube Goldberg。 注:任意の種類の出力を使用できます(stdout、stderr、ダイアログボックスなど) ポイント 点の数は数で割ったあなたのコード内で使用されるバイト数に等しい明確な、余分に使った言語。 注:言語ごとに異なるエンコードが使用されます。バイト数は、独自のエンコーディングで初期言語でカウントされます。 例 Pyth -> J -> Javascript -> output30バイト= 30/2 = 15ポイント(JとJavascriptは追加の言語です) Java -> C# -> C++ -> PHP -> output36バイト= 36/3 = 12ポイント(より多くのバイトとより多くの言語がより少ないバイトとより少ない言語で勝つことができます(これらの言語が36バイトでそれを行う方法はないことを知っています) C -> output10バイト= 10/0 = 無限大ポイント(追加の言語なし) Python -> Perl -> Ruby …

30
レゲン…待って…
うん! 数日中に私に何が起こるのかとまったく関係のないイベントでは、次のことを行うコードを作成する必要があります。 印刷する Legen... wait for it... すぐに、末尾に改行が付きます。 次の1時間(バッジを授与するためのcronジョブが実行されるとき)まで待ちます。 印刷する dary! オプションの改行。 追加のルール プログラムまたは関数を作成できますが、出力はSTDOUT(または言語の最も近い代替)に出力する必要があります。 あなたは、次まで待つ必要がフルだけでなく、60分間、時間。コードが6:58に実行される場合、7:00に2行目を印刷する必要があります。 最後の行は、次の1時間の1秒以内に印刷する必要があります。 プログラムが1時間の最初の1秒間に開始された場合は、次の1時間待つ必要があります。 現地時間またはUTC時間を照会できます。 標準のコードゴルフ規則が適用されます。
68 code-golf  date 

27
418:私は急須です
知っておくべきこととして、HTTPステータスコード418があります:私はティーポットです。 あなたの使命は、あなたがそれを受け入れることを選択した場合、あなたの創造物を使用し、それに対して行われたあらゆるHTTPリクエストに上記のステータスコードで応答する最小のサーバーを書くことです。 以下を含む標準の抜け穴が適用されます 外部ソースから目的の出力を取得する これには、HTTPリクエストを実行して質問のあるページを取得し、そのページからソリューションを抽出することが含まれます。これは2011年には少しおもしろかったですが、現在は派生的で面白くありません。 つまり、単にリクエストを別のサーバーにリダイレクトして、レスポンスを返すようにすることはできません。 サーバー機能に関するいくつかの混乱に対処する: HTTP要求が行われると、正しい応答で応答する限り、サーバーは何も(または何も)できませんが、HTTP要求は行われません。

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