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

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

16
障害のあるXKCDブラウザーを構築する
チャレンジ XKCDコミックの番号を指定して、そのコミックのタイトルテキスト(マウスオーバーテキスト)を出力します。 ただし、数字859またはを指定すると、プログラムはエラーをスローする必要があります404。 ルール 指定された番号は常に既存のコミックになります(を除く404)。 プログラムは、859または以外の番号に対してエラーをスローしてはなりません404。 参考のために、コミック404は存在せず、859次のとおりです。 Brains aside, I wonder how many poorly-written xkcd.com-parsing scripts will break on this title (or ;;"''{<<[' this mouseover text." URL短縮サービスは許可されていません。インターネットを使用してタイトルテキストを取得できます。 例 Input > Output 1642 > "That last LinkedIn request set a new record for the most energetic physical event ever observed. Maybe …

30
コードジョニーコード、コード!
ロックンロールの創設者であるチャックベリーは、今日悲しいことに亡くなりました。 彼の有名な歌「ジョニー・B・グッド」のコーラスを考えてみましょう: Go, go Go Johnny go, go Go Johnny go, go Go Johnny go, go Go Johnny go, go Johnny B. Goode (句読点は他にもあり ますが、上記はチャレンジの目的に役立ちます。) チャレンジ 空ではない小文字の文字a〜zを指定すると、「Johnny B. Goode」のコーラスが、入力文字列のすべてのインスタンスとともに、Goまたはgo同じ方法で大文字で入力文字列に置き換えられて出力されます。 オプションで、後続の改行が続く場合があります。コーラス内の他の何も変更しないでください。 たとえば、入力がcode出力である場合、正確に Code, code Code Johnny code, code Code Johnny code, code Code Johnny code, code Code Johnny code, code Johnny …
75 code-golf  string 

30
「a」と「b」の数は等しくなければなりません。コンピューターを手に入れましたか?
人気のある(必須の)コンピューターサイエンスの本、Peter Linzによる「形式言語とオートマトンの紹介」では、次の形式言語が頻繁に述べられています。 主に、この言語は有限状態オートマトンで処理できないためです。この表現は、「言語Lは「a」と「b」が続くすべての文字列で構成され、「a」と「b」の数は等しくゼロではないことを意味します。 チャレンジ 「a」と「b」のみを含む文字列を入力として取得し、この文字列が正式な言語Lで有効かどうかを示す真理値を返す/出力する作業プログラム/関数を作成します。 プログラムは、ネットワーク、外部プログラムなどの外部計算ツールを使用できません。シェルはこの規則の例外です。たとえば、Bashはコマンドラインユーティリティを使用できます。 プログラムは、結果を「論理的な」方法で返す/出力する必要があります。たとえば、0の代わりに10を返す、「ビープ音」、stdoutへの出力などです。詳細はこちら。 標準コードのゴルフ規則が適用されます。 これはコードゴルフです。バイト単位の最短コードが優先されます。幸運を! 真実のテストケース "ab" "aabb" "aaabbb" "aaaabbbb" "aaaaabbbbb" "aaaaaabbbbbb" 偽のテストケース "" "a" "b" "aa" "ba" "bb" "aaa" "aab" "aba" "abb" "baa" "bab" "bba" "bbb" "aaaa" "aaab" "aaba" "abaa" "abab" "abba" "abbb" "baaa" "baab" "baba" "babb" "bbaa" "bbab" "bbba" "bbbb"


30
StackOverflowエラーをスローする最短プログラム[終了]
StackOverflowエラーまたは使用する言語で同等のエラーをスローするプログラムを作成します。たとえば、javaでは、プログラムはをスローする必要がありjava.lang.StackOverflowErrorます。 自分自身または新しいクラスを呼び出す関数を定義することはできません(mainjavaに含まれるクラスを除く)。選択したプログラミング言語のクラスを使用する必要があります。 また、エラーを明示的にスローするべきではありません。
75 code-golf 

6
ハードコードゴルフ:7で割り切れる正規表現
Matthias Goergensには、7で割り切れる数字に一致する25,604文字(元の63,993文字から)の正規表現がありますが、多くの綿毛が含まれています:冗長な括弧、分布(xx|xy|yx|yyではなく[xy]{2})、およびその他の問題。フレッシュスタートは、スペースを節約するのに役立ちます。これはどれくらい小さくできますか? 妥当なさまざまな正規表現は許可されますが、正規表現には実行可能コードはありません。 正規表現は、7で割り切れる数の10進表現を含むすべての文字列に一致する必要があり、他の文字列には一致しません。最初の0を許可しない正規表現の追加クレジット。

30
プログラミングパズルからコードゴルフまで
あなたの仕事は、正確な文字列を出力するプログラムを書くことProgramming Puzzlesです(末尾の改行はオプションです)が、すべてのスペース、タブ、改行が削除されると、出力しますCode Golf(末尾の改行はオプションです)。 バイトカウントは、最初のプログラムのカウントであり、そこにはまだスペースがあります。 ノート のスペースはCode Golf 、 Programming Puzzles削除の一部として削除されるため、それに応じて計画してください。 0x09、0x0A、および0x20がそれぞれタブ、改行、またはスペースではないエンコーディングでは、これらの文字は削除されます。 あなたのコードが 42 $@ rw$ @42 その後、それは出力する必要がありますProgramming Puzzles。また、同じ言語で、 42$@rw$@42 出力する必要がありますCode Golf。 これはcode-golfなので、バイト単位の最短コードが勝ちです!幸運を!

17
ゴルフデニス温度計
Dennisは、モデレーター、言語デザイナー、TIOのプロバイダーなど、このコミュニティに多大な努力を払っています。 残念ながら、彼の4歳の娘は風邪をひいているので、体温計を提供して、回復を追跡するのを手伝ってあげましょう(スピーディかもしれません)。 .-----------. | | | | '-. .-' .-' - '-. |107.6- 42.0| |106.7- 41.5| |105.8- 41.0| |104.9- 40.5| |104.0- 40.0| |103.1- 39.5| |102.2- 39.0| |101.3- 38.5| |100.4- 38.0| | 99.5- 37.5| | 98.6- 37.0| | 97.7- 36.5| | 96.8- 36.0| | 95.9- 35.5| | 95.0- 35.0| '---. - …

11
エラー404:文字が見つかりません
シナリオ 友達の1人が宿題に苦労しています。彼は最初の404自然数を印刷する簡単なプログラムを必要とします: 1 2 3 4 5 6 7 8 9 10 11 ... 401 402 403 404 あなたの挑戦は簡単です:彼のためにこのプログラムを書いてください。 ただし、接続はひどいため、プログラムを送信するたびにランダムな文字が1つ失われます。これがプログラムを壊さないようにするには、単一の文字を削除しても効果がないようにする必要があります。プログラムは関係なく動作します。(元のプログラムも動作する必要があります。) 接続が不十分で大きなファイルを送信できないため、コードはできるだけ短くする必要があります。 TL:DR-放射線強化プログラムを作成して、1〜404の数値を出力します ルール/詳細 出力は、任意の妥当な形式の整数のリスト(スペース、改行、コンマなどで区切られたもの)である場合があります。ただし、出力は一貫性があり、プログラムが変更されたときに変更されない必要があります。 ロジックを含むコマンドラインフラグ、実際のコードの実行、番号リストの生成などは禁止されています。 これはcode-golfなので、最短の送信(バイト単位)が勝ちです!

30
差別のないプログラミング
文字列の各文字が同じ回数、少なくとも2回現れる場合、文字列は非差別的であると言います。 例 "aa!1 1 !a !1"ある非識別文字の各ので 、!、aと13回表示されます。 "abbaabb"は、より頻繁に表示されるため、差別的ではありません 。ba "abc"ない 非識別文字は、少なくとも2回表示されませんので。 仕事 書き込み非識別プログラムや関数戻りtruthy与えられた文字列である場合に値を非識別、およびfalsyそうでない場合、値を。 つまり、独自のソースコードで実行されるプログラムは、真の値を返す必要があります。 各送信は、印刷可能なASCIIを含む空でない文字列と、送信のソースコードに表示されるすべての文字を処理できる必要があります。 テストケース 真実: <your program's source code> "aaaa" "aa!1 1 !a !1" "aabbccddeeffgg" "1Q!V_fSiA6Bri{|}tkDM]VjNJ=^_4(a&=?5oYa,1wh|R4YKU #9c!#Q T&f`:sm$@Xv-ugW<P)l}WP>F'jl3xmd'9Ie$MN;TrCBC/tZIL*G27byEn.g0kKhbR%>G-.5pHcL0)JZ`s:*[x2Sz68%v^Ho8+[e,{OAqn?3E<OFwX(;@yu]+z7/pdqUD" 偽物: "a" "abbaabb" "abc" "bQf6ScA5d:4_aJ)D]2*^Mv(E}Kb7o@]krevW?eT0FW;I|J:ix %9!3Fwm;*UZGH`8tV>gy1xX<S/OA7NtB'}c u'V$L,YlYp{#[..j&gTk8jp-6RlGUL#_<^0CCZKPQfD2%s)he-BMRu1n?qdi/!5q=wn$ora+X,POzzHNh=(4{m`39I|s[+E@&y>"

22
亀はずっと下に
正の整数であり、プリントにかかるか、または多くのASCII-技術のスタック返すプログラムまたは機能書き込みカメ各亀が上記のものよりも大きいです。 具体的には1、入力がの場合、出力は次のようになります。 __ /,,\o 入力が2次の場合: __ o/,,\ ____ /,__,\o 入力が3次の場合: __ /,,\o ____ o/,__,\ ______ /,____,\o 入力が4次の場合: __ o/,,\ ____ /,__,\o ______ o/,____,\ ________ /,______,\o 入力が5次の場合: __ /,,\o ____ o/,__,\ ______ /,____,\o ________ o/,______,\ __________ /,________,\o 同じように、より大きな入力に対しても同様です。 ご了承ください: o下のカメの頭()は常に右側にあります。上のカメの頭は前後に交互になります。 行の末尾にスペースを含めることはできません。 余分な先行スペースは許可されません。(つまり、一番下のカメの後ろがラインの先頭にあるはずです。) 単一のオプションの末尾の改行が許可されます。 バイト単位の最短コードが優先されます。

30
JSONを印刷する
この挑戦は簡単ですが、うまくいけば、あなたがそれに近づくことができる多くの道があります: 必須ではない空白をカウントせずに、少なくとも15文字の有効なJSON オブジェクトを印刷/返す必要があります。 プログラムは何も入力しなくても動作するはずです。 わかりやすくするために、JSONオブジェクトは中括弧{}で始まり、中括弧で終了し、コンマで区切られた0個以上のkey:valueペアを含みます。完全なJSON仕様はjson.orgにあり、コードの出力はこのバリデーターに合格する必要があります。 したがって、次のいずれも有効ではありません。 4 //Too short, not an object "really, really long string" //A string, not an object ["an","array","of","values"] //An array is not a JSON object {"this":4 } //You can't count unessential whitespace {"1":1,"2":3} //Too short {"a really long string"} //Not valid JSON, it needs a value …
74 code-golf  json 

11
神の90億の名前
神の90億の名前は、アーサーC.クラークによる短編です。それは、自分のアルファベットで書かれた神のすべての可能な名前を書き留めることに専念しているチベットの僧ksのグループについてです。基本的に、彼らはいくつかのルールによって制限されたアルファベットのあらゆる可能な順列を書くことに専念しています。物語の中で、修道院は何人かのエンジニアを雇って、彼らのためにすべての仕事をするプログラムを書くようにしています。あなたの目標はそのプログラムを書くことです。 ルール: 僧kのアルファベットは13文字を使用しています(私の推定によると)。ABCDEFGHIJKLMまたは13文字のその他のセットを使用できます。 可能な名前の最小長は1文字です。最大長は9文字です。 キャラクターは連続して3回以上繰り返すことはできません。AAABAは有効な名前ですが、そうでAAAABはありません。 プログラムは、アルファベット順ではない任意の文字(改行、セミコロン、その他)で区切られたAto から順に、可能なすべての名前を(ファイルに)出力する必要がありますMMMLMMMLM。 これはコードゴルフであり、任意の言語を使用できます。2014年6月1日までの最短のソリューションが勝利します。 編集:名前はで始まり、Aで終わる必要がMMMLMMMLMあります。すべての数十億の名前が順番に処理されます。しかし、特定のシーケンスはあなた次第です。最初にすべての1文字の名前、次にすべての2文字の名前などを印刷できます。または、で始まるすべての名前を印刷しA、次にで始まるすべての名前B、または他のパターンを印刷できます。しかし、時間があると仮定すると、人間はファイルを読んで、すべてがそこにあり、あなたが選択した論理的な順序ですべてを確認できるはずです。

30
フィボナッチ+フィズバズ=フィボナッチ!
フィボナッチ+ FizzBu​​zz =フィボナッチ! あなたの課題は、フィボナッチプログラムを作成することです! Fibo Nacciプログラムは、最初の100個のフィボナッチ数(1から始まる)を出力します。 フィボナッチ数が2 と 3の両方で割り切れる(つまり、6で割り切れる)場合、数字の代わりにFiboNacciを出力します。 それ以外の場合、フィボナッチ数が2で割り切れる場合、数ではなくFiboを出力します。 それ以外の場合、フィボナッチ数が3で割り切れる場合、数の代わりにNacciを出力します。 ルール プログラムは何も入力しないでください。 プログラムは、\nエントリごとに新しい行()を出力する必要があります。 プログラムは、STDERRに何も印刷しないでください。 プログラムは、最初の100個の Fibo Nacciエントリ(1から始まる)を出力する必要があります。 標準の抜け穴は許可されていません(デフォルト)。 これはコードゴルフなので、バイト単位の最短コードが勝ちです! 予想される出力は次のとおりです。 1 1 Fibo Nacci 5 Fibo 13 Nacci Fibo 55 89 FiboNacci 233 377 Fibo Nacci 1597 Fibo 4181 Nacci Fibo 17711 28657 FiboNacci 75025 121393 Fibo Nacci 514229 …

5
1つの閉じた曲線だけで画像を再描画する
vi.sualize.usに触発 ゴール 入力はグレースケール画像で、出力は白黒画像です。出力画像は、1つの閉じた曲線(ループ)のみで構成され、それ自体と交差したり、触れたりすることはできません。線の幅は、画像全体で一定でなければなりません。ここでの課題は、そうするためのアルゴリズムを見つけることです。出力は入力画像を表す必要がありますが、芸術的な自由があります。解像度はそれほど重要ではありませんが、アスペクト比はほぼ同じままです。 例 その他のテスト画像

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