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

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

25
Piのスライスを焼く
この正確なテキスト(142文字で構成される)を印刷または出力するプログラムまたは関数を作成します。 ()()()()()() |\3.1415926| |:\53589793| \::\2384626| \::\433832| \::\79502| \::\8841| \::\971| \::\69| \::\3| \__\| プログラムは入力を行わず(これが不可能な言語などを除くsed)、上記のテキスト(および上記のテキストのみ)を出力として生成する必要があります。末尾の改行は許容されます。 これはcode-golfであるため、最短回答(バイト単位)が優先されます。

28
あなたは8日間連続です!
言語学習アプリのDuolingoには多くのことがありますが、私を夢中にさせる大きな問題が1つあります。このアプリを使用した日数が7日間連続であるというメッセージが表示されます。ハイフネーションを省き、数字を正確に入力する必要があるかどうかは、ほとんどの数字でうまくいきますが、「8日間連続でいる」と言うと間違いなく間違っています!私は英語を学ぶためにそれを使用していませんが、これはまだ言語アプリにとって残念な振る舞いです。 あなたは、与えられた数がが先行されるべきかどうかを割り出し、完全なプログラムや機能書き込むことによってDuolingoチームを手助けするつもりか。番号が先行する口語英語での発音が始まる場合子音や半母音音によって、及び先行その発音は母音で始まる場合。このように先行数字のみ、その発音から始まるものであり、8、11、18、または80。 おそらくDuolingo開発チームは、アプリ内のソースコードを追加するためのスペースが足りなくなったため、このバグを残しました。したがって、このコードを圧縮できるように、このコードをできるだけ短くする必要があります。 コードは、0から2,147,483,647の整数を取り、出力aまたはである必要がありanます。末尾の改行はオプションです。この課題の目的のために、1863年は次のように読まれ一八六〇から三ではなく、1800と六十から三。 テストケース: 0 → a 8 → an 11 → an 18 → an 84 → an 110 → a 843 → an 1111 → a 1863 → a 8192 → an 11000 → an 18000 → an 110000 → a 180000 → a 1141592 → a …
82 code-golf  number 

16
未定義の行動が猫を殺した[終了]
未定義の行動が猫を殺した 未定義の動作が猫を殺す可能性があることはよく知られています[要出典]。 しかし、できますか? あなたのタスク 未定義の動作を呼び出すプログラムを作成します。 前述のUBの結果として、上記のプログラムが実行されて開始し、Felis catusが所有権を保持している間にその寿命を終了させるシナリオを説明してください。 シナリオの各段階の確率を推定します。 プログラムを1回実行すると猫が死亡する可能性の合計を計算します。 ルール これは人気コンテストですので、できれば創造的にしてください。 これはプログラミング関連の課題であるため、イベントチェーンはほとんどの場合、現実世界ではなくコンピューター内に存在する必要があります(もちろん、猫がいる場合に現実世界に到達する必要がある場合)。 未定義の動作を持たない言語を選択する場合は、同様のものを使用してください。 回答の作成中に動物を傷つけることはできません。 得点 投票数とシナリオの合計確率(1を超えることはできません)。 Cの例: main(){printf();} シナリオ: printfスタックからのゴミで呼び出されます-未定義の動作。確率:100%。 最初のパラメータはたまたま文字列Your cat is ugly!です。確率:(1/256)17 =(1.148 * 10 -37)%。 メッセージを見て、銃を手に取り猫を撃ちます。確率:3%。 猫は死にます。確率:93%。 合計確率:(3.202 * 10 -39)%。

30
KOTH:世界的なパンデミック
最終結果はこちら! 前書き 2042年、世界は人口過剰になりました。グローバリゼーション、過密状態、新しいライフスタイル、世界的な衛生状態の欠如により、新しいパンデミックが広がりました。それらの困難な時期に、国家指導者は状況を管理しなければなりません。人口を間引くことはできませんが、隣人を死なせることで利益を得られるかもしれません... 用語集 健康:人々が感染していない 感染パンデミックから死ぬことができる人物: デッド:ボディは、特段の効果(のみ得点)カウントしない 感染率の数:健康になり感染を各ターン 伝染料金:の割合感染変換する健康への感染を各ターンの 致死率:各ターンで死亡する感染者の割合 移行率:各ターンに移住/移住する健康および感染者の割合 ローカルを:州のみに影響します Global:すべての州に影響します 原理 各プレイヤーは、100人から始まる1つの町を管理します。残念ながら、それらの中には感染した人がいます。 ゲームはターンベースです。ターンは7つのフェーズで構成され、最後のフェーズはインタラクティブです(ボットにコマンドを要求します)。プレイヤーの順番は毎ターンランダム化されます。次のフェーズは、前のフェーズがすべての町で実行されたときに始まります(ターン1:プレイヤー1、プレイヤー2、プレイヤー3 ...、ターン2:プレイヤー3、プレイヤー2、プレイヤー1 ...): 1. Mutation - AUTOMATED 2. Reproduction - AUTOMATED 3. Migration - AUTOMATED 4. Infection - AUTOMATED 5. Contagion - AUTOMATED 6. Extinction - AUTOMATED 7. Players Turn - INTERACTIVE コントローラーはコマンド引数を介して入力を提供し、プログラムはstdoutを介して出力する必要があります。 構文 入力 …

21
手付かずでユニークなコードボウリング
あなたの挑戦は簡単です:一意のバイトのみを使用して、選択した言語でできるだけ長く元のプログラムを書きます。(そのリンクからコピーされた元のプログラムの完全な定義は、この質問の最後にあります。) そうです、紐は付いていません。コードは何もする必要がなく、エラーなしで実行され、元のプログラム(上記のリンク)の要件を満たし、使用するエンコードに重複バイトを含めません。 上記の説明と「元のプログラム」のリンクされた定義の目的で、エラーは、プログラムが完全に実行できないか、有限時間後にゼロ以外の終了コードで終了するものとして定義されます。 これはcode-bowlingであるため、最長ではなく最短でコードが勝ちます(バイトカウントで測定)。256個の異なるバイトが可能なため、理論的に可能な最大スコアは256です。同点の場合、最高スコアの最初の回答が勝ちです。 上記のリンクからコピーされた、元のプログラムの完全な定義は次のとおりです。 そのままのプログラムを、それ自体にエラーはないが、N文字の連続する部分文字列を削除して修正するとエラーになるプログラムとして定義してみましょう1 <= N < program length。 たとえば、3文字のPython 2プログラム `8` 長さ1の部分文字列を削除した結果、すべてのプログラムがエラーを引き起こします(実際には構文エラーですが、あらゆるタイプのエラーが発生します)。 8` `` `8 また、長さ2の部分文字列を削除した結果、すべてのプログラムがエラーを引き起こします。 ` ` たとえば、エラーのない`8プログラムであった場合、部分文字列の削除の結果はすべてエラーに`8`なるため、初期状態ではありません。

11
正規表現、紙、はさみ、トカゲ、スポック
ウォームアップ:正規表現、紙、はさみ これは、非常に短いソリューションが存在することに気付く前に、私が最初に投稿したかった課題です。それでも、以下の実際の課題に備えて考えることは興味深い問題になる可能性があります。 3つの正規表現R、P、およびSを、それらが周期的なロック、ペーパー、はさみの方式で互いに一致するように記述します。特に、Rは、一致Sを、Sは一致PとPが一致Rが、しかしRは ない一致Pを、Sは ない一致RをとPが一致していないSを。便利な表を次に示します。 Regex Matches Doesn't match R S P P R S S P R R、P、およびSがそれ自体を含む他の入力に対して何をするかは問題ではありません。 ここで、一致とは、入力の一部の(おそらく空の)サブストリングが一致することを意味します。一致は入力全体をカバーする必要はありません。 課題:正規表現、紙、はさみ、トカゲ、スポック この課題では、RPSの変種であるRock、Paper、Scissors、Lizard、Spock(The Big Bang Theoryで普及)に基づいて、上記の問題のより厳しいバージョンを解決します。RPSLVには、2つのサイクルで互いに勝つ5つの異なるシンボルがあります。 ロック→はさみ→トカゲ→紙→スポック→ロック ロック→トカゲ→スポック→はさみ→紙→ロック 入力として互いに与えられたときにこの構造を模倣する5つの正規表現R、P、S、L、およびVを記述する必要があります。対応する表は次のとおりです。 Regex Matches Doesn't match R L, S V, P L V, P S, R V S, R P, L S P, L …

30
違法な文字列を見つける
課題は、文字の文字列を見つけることですができませんに表示されるすべてのお好みのプログラミング言語で法的なプログラムを。これには、コメント、文字列、またはその他の「実行不可能な」部分が含まれます。 チャレンジ プログラムは、言語のコンパイラ/インタープリター/ランタイム環境の特定のバージョンまたは実装に固有のものである場合があります。その場合、詳細を指定してください。 標準のコンパイラ/インタープリター/ランタイムオプションのみが許可されます。特定の結果を得るために、コンパイラに奇妙なフラグを渡すことはできません(たとえば、フラグを渡して警告をエラーに変換する)。 プログラミング言語が特定のエンコード(UTF-8など)を必要とする場合、文字列も正しくエンコードする必要があります(つまり、文字デコードエラーのみによって失敗する文字列は許可されません)。 提出する個々のキャラクターはすべて、法的プログラムで認められる必要があります。つまり、常に拒否される文字を使用することはできません。 与えられたとき、コンパイラ/インタプリタ/ランタイムはエラーを与える必要があります任意の部分文字列として、あなたの文字列が含まれているソースコードを。エラーはプログラム間で同じである必要はありません。文字列を埋め込むと構文エラーが発生し、別の文字列を埋め込むとランタイムエラーが発生する可能性があります。 得点 各言語の最短の違法文字列が優先されます。 文字列が違法である理由を説明する必要があります(正当なプログラムのどこにも表示できない理由)。 コメント内の誤った解決策に異議を唱えます。より具体的には、提案された部分文字列を含む合法的なプログラム(エラーを生成しないプログラム)を示すTIOまたは同等物へのリンクを提供する必要があります。 一部の言語(Bash、Batch、Perlなど)では、妥当性に影響を与えることなく(__DATA__Perlでの使用など)プログラムに任意のバイナリデータを追加できます。そのような言語については、そのような末尾のセクションにのみ表示されるソリューションを提出できます。回答にそのことを必ず書き留めてください。(この「末尾セクション」の定義は言語に依存しますが、一般的には、パーサーがスクリプトの読み取りを完全に停止した後のテキストを意味します)。 例 Pythonでは、私は提出するかもしれません x """ ''' しかし、これは大きなプログラムに埋め込むことができます """ x """ ''' y ''' そのため、許可されていません。

30
<すべての言語>でのゴルフのヒント
この投稿の目的は&lt;all languages&gt;、特定のものではなく、簡単に適用できるすべてのゴルフのヒントを収集することです。 そのロジックを大半の言語に適用できるという回答のみを投稿する 回答ごとに1つのヒントをお願いします
81 code-golf  tips 

30
Tabula Rectaを印刷します!
Tabula Rectaを印刷します! Tabula Recta(「Vigenere Table」と呼ばれることもある)はJohannes Trithemiusによって作成され、BellasoのVigenere暗号とTrithemius暗号のすべてのバリアントを含むいくつかの暗号で使用されています。次のようになります。 ABCDEFGHIJKLMNOPQRSTUVWXYZ BCDEFGHIJKLMNOPQRSTUVWXYZA CDEFGHIJKLMNOPQRSTUVWXYZAB DEFGHIJKLMNOPQRSTUVWXYZABC EFGHIJKLMNOPQRSTUVWXYZABCD FGHIJKLMNOPQRSTUVWXYZABCDE GHIJKLMNOPQRSTUVWXYZABCDEF HIJKLMNOPQRSTUVWXYZABCDEFG IJKLMNOPQRSTUVWXYZABCDEFGH JKLMNOPQRSTUVWXYZABCDEFGHI KLMNOPQRSTUVWXYZABCDEFGHIJ LMNOPQRSTUVWXYZABCDEFGHIJK MNOPQRSTUVWXYZABCDEFGHIJKL NOPQRSTUVWXYZABCDEFGHIJKLM OPQRSTUVWXYZABCDEFGHIJKLMN PQRSTUVWXYZABCDEFGHIJKLMNO QRSTUVWXYZABCDEFGHIJKLMNOP RSTUVWXYZABCDEFGHIJKLMNOPQ STUVWXYZABCDEFGHIJKLMNOPQR TUVWXYZABCDEFGHIJKLMNOPQRS UVWXYZABCDEFGHIJKLMNOPQRST VWXYZABCDEFGHIJKLMNOPQRSTU WXYZABCDEFGHIJKLMNOPQRSTUV XYZABCDEFGHIJKLMNOPQRSTUVW YZABCDEFGHIJKLMNOPQRSTUVWX ZABCDEFGHIJKLMNOPQRSTUVWXY これは頻繁に必要ですが、インターネット上のどこからでもコピーして貼り付けることはできません。正方形のテーブルはとても長く、friggingかかるため年齢を入力して、あなたのコードはできるだけ短くする必要があります。 ルール/要件 各提出は、完全なプログラムまたは機能である必要があります。関数である場合、プログラムの下部に関数呼び出しを追加するだけで実行可能でなければなりません。他のもの(Cのヘッダーなど)を含める必要があります。 可能であれば、プログラムをテストできるサイトへのリンクを提供します。 プログラムはに何も書き込まないでくださいSTDERR。 標準の抜け穴は禁止されています。 プログラムはどのような場合でも出力できますが、印刷する必要があります(配列などではありません)。 得点 プログラムは、デフォルトでUTF-8または選択した別の文字セットで、バイトに従ってスコア付けされます。 最終的に、バイト数が最小の答えが勝ちます。 提出 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 # Language Name, N bytes N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: …

9
米の粒を数える
さまざまな量の未調理の白米のこれら10個の画像を考えてみてください。 これらは唯一のサンバイルです。画像をクリックしてフルサイズで表示します。 A: B:C:D:E: F: G:H:I:J: 穀物カウント: A: 3, B: 5, C: 12, D: 25, E: 50, F: 83, G: 120, H:150, I: 151, J: 200 に注意してください... 粒子は互いに接触する場合がありますが、重なることはありません。グレインのレイアウトが1グレイン以上になることはありません。 画像の寸法は異なりますが、カメラと背景が静止しているため、すべての米のスケールは一貫しています。 粒子が範囲外に出たり、画像の境界に触れたりすることはありません。 背景は常に黄色がかった白の同じ一貫した色合いです。 小粒と大粒はそれぞれ1粒としてカウントされます。 これらの5つのポイントは、この種のすべての画像の保証です。 チャレンジ そのような画像を取り込み、可能な限り正確に米の粒数をカウントするプログラムを作成します。 プログラムは画像のファイル名を取得し、計算した粒子数を出力する必要があります。プログラムは、JPEG、ビットマップ、PNG、GIF、TIFF(現在はすべてJPEG)の画像ファイル形式の少なくとも1つで動作する必要があります。 あなたは可能画像処理とコンピュータビジョンライブラリを使用しています。 10個のサンプル画像の出力をハードコードすることはできません。アルゴリズムは、同様のすべての米粒画像に適用できる必要があります。まともな最新のコンピューターで 5分未満で実行できるはずです。画像領域が2000 * 2000ピクセル未満で、米粒が300未満の場合、です。 得点 10個の画像のそれぞれについて、実際の粒子数からプログラムが予測する粒子数を引いた絶対値を取ります。これらの絶対値を合計してスコアを取得します。最も低いスコアが勝ちます。スコア0は完璧です。 同点の場合、最も高い投票数の回答が勝ちます。追加の画像でプログラムをテストして、その有効性と正確性を検証する場合があります。

30
2048のような配列シフト
2048ゲームで行われているように配列をシフトしたいとします。配列に2つの等しい連続した要素がある場合、それらをvalue要素の2倍にマージします。Shiftは、連続する等しい要素のすべてのペアが合計で置き換えられ、ペアが交差しない新しい配列を返す必要があります。シフトは1回だけ実行されるため、結果の値を再度マージする必要はありません。例えば、ので、我々は3つの連続で同じ要素を持っている場合、我々は右端のものを合計しなければならないことに注意してください[2, 2, 2]になるべき[2, 4]ではありません[4, 2]。 タスクは、配列を取り、シフトされた配列を返す最短の関数を書くことです。 すべての整数が厳密に正であると仮定できます。 例: [] -&gt; [] [2, 2, 4, 4] -&gt; [4, 8] [2, 2, 2, 4, 4, 8] -&gt; [2, 4, 8, 8] [2, 2, 2, 2] -&gt; [4, 4] [4, 4, 2, 8, 8, 2] -&gt; [8, 2, 16, 2] [1024, 1024, 512, …

16
SVGCaptchaを倒す
私が出くわしたSVGCaptcha、そしてすぐに、それは悪い考えを知っていました。 コードが生成するSVGイメージから検証コードを抽出することにより、これがいかに悪いアイデアであるかを示してほしい。 サンプル画像は次のようになります。 サンプル画像のソースは次のとおりです。 &lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"&gt; &lt;svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" width="200" height="40" &gt; &lt;rect x="0" y="0" width="200" height="40" style="stroke: none; fill: none;" &gt; &lt;/rect&gt; &lt;text style="fill: #4d9363;" x="5" y="34" font-size="20" transform="translate(5, 34) rotate(-17) translate(-5, -34)"&gt;8&lt;/text&gt; &lt;text style="fill: #be8b33;" x="125" y="29" font-size="21" transform="translate(125, 29) …

25
「Hello、World!」という印刷
はい、そうです。 印刷ハードウェアプリンタとそれを🖨ハードコピーを作成します。 次のテキストが紙に印刷されるように、必要なコマンド/データをプリンターに送信します。 こんにちは世界! 使用可能なローカルまたはネットワーク接続のプリンターを使用できます。 プリンタで許可されている場合は、白い紙に黒インクで8pt以上のテキストを使用する必要があります。 テキストは独自の行に表示されます。必要に応じて左または右に配置できます。 提出のデジタル写真/ビデオ/ GIFの証拠が役立ちます。 ハードウェアが紙を処理できないが、3D印​​刷、CNC機械加工、または原子レベルでの印刷など、他のエキゾチックなハードコピーの制作を許可する場合、このような興味深い提案を喜んで受け入れます。 明確にするために、質問は「必要なコマンド/データをプリンタに送信します」を尋ねます。これの意味するところは、それ以上のユーザー入力は必要ないということです。印刷ダイアログを開くだけでは不十分です。2016年12月31日午前10時48分(PST)時点でこれを行う既存の回答には、祖父が付きます(ただし、私は賛成しません)。

30
バイナリ文字列をビット単位で反転する最短コード
ここでは、初心者が挑戦できるほど簡単な質問はないと思います! 課題:次のような1と0のランダムな入力文字列が与えられた場合: 10101110101010010100010001010110101001010 ビット単位の逆関数を出力する最短コードを次のように記述します。 01010001010101101011101110101001010110101
79 code-golf  string 

30
こんにちは世界!文字の繰り返しが制限されている
選択した言語で、文字と改行を正確に出力するプログラムを作成Hello world!します。コード: 2文字を超える文字を使用しないでください(英数字、記号、空白など) 外部リソースを使用しないでください ユーザー入力を使用しないでください 何も出力しないでください 有効なpythonプログラムの例: print("He%so world!"%(2*'l')) 無効なpythonプログラムの例(文字「r」が3回使用されます): print("Hel"+chr(108)+'o world!') 勝者は、14日後の投票数が最も多い人です。 編集:勝者が選ばれました!この質問にご協力いただきありがとうございます!

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