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

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

1
正規表現の検証正規表現[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Code Golf Stack Exchangeのトピックになるようにします。 去年閉鎖されました。 入力として正規表現文字列を受け入れ、それが有効かどうかを確認する正規表現を作成します。基本的に、正規表現はそれ自体を検証できるはずです。(無効な正規表現は検証されないため、使用できません.*。;) フレーバーは、よく知られている実装(Perl、sed、grep、gawkなど)によって完全にサポートされている必要があり、それらの実装がサポートするものを完全にサポートしている必要があります。[弁護士が話すことを心配しないでください。私は、スマート***の可能性のある抜け穴を削除しようとしています。] 私はそれをコードゴルフしたいと思いますが、機能が豊富ではないフレーバーを知って使用している人々に優位性を与えるのではないかと心配しています。または、私の心配は根拠がありませんか?
17 code-challenge  code-golf  code-golf  game  sudoku  code-challenge  math  ai-player  code-challenge  sorting  rosetta-stone  code-challenge  code-challenge  programming-puzzle  code-golf  number  code-golf  maze  code-golf  math  regular-expression  code-golf  sequence  code-golf  graph-theory  code-golf  string  word-puzzle  natural-language  brainfuck  metagolf  optimized-output  fastest-algorithm  code-golf  game-of-life  cellular-automata  code-golf  puzzle-solver  grid  code-golf  combinatorics  binary-tree  popularity-contest  code-challenge  code-golf  ascii-art  kolmogorov-complexity  brainfuck  metagolf  code-golf  c  date  code-golf  word-puzzle  crossword  word-search  code-golf  code-golf  quine  code-golf  string  random 

3
三次のクインを書く
この課題は、「ゴルフ相互馬」の延長です。 選択した3つの言語を使用して、3次ウロボロスプログラムを作成します。 つまり、言語Aで、プログラムpBを言語Bで出力するプログラムpAを作成します。プログラムpBは、言語CでプログラムpCを出力し、次に言語Aで元のプログラムpAを出力します。 A、B、およびCの2つの言語が同じであったり、互いにサブセットまたはスーパーセットであったりすることはできません。pA、pB、pCのいずれも同一であってはなりません。 たとえば、Haskellプログラムは、元のHaskellプログラムを出力するjavaプログラムを出力するPerlプログラムを出力します。 一方、C#2プログラムを出力するC#3プログラムを出力するC#4プログラムは無効です。たとえば、PerlプログラムとRubyプログラムが同一であれば、Perl-> Ruby-> Bashの組み合わせでも無効になります。 これはコードゴルフなので、最短のプログラムpAが勝ちます。
17 code-golf  quine 

30
非プライム番号の検索
あなたがそれを受け入れることを選んだなら、あなたの挑戦は、数字が以下の基準を満たしている場合にtrueまたはfalse(またはyesとnoの同様の意味のある表現)を返す関数をコードゴルフすることです: 整数自体は素数ですOR 隣接する整数のいずれかが素数 たとえば、次 の入力7 Trueを返します。 の入力8もTrueを返します。 の入力は15Falseを返します。(14、15、16のいずれも素数ではありません) 入力は2 ^ 0から2 ^ 20までの数値に対して正しく返される必要があるため、符号の問題や整数のオーバーフローを心配する必要はありません。

4
ワードサーチソルバー
単語のリストと文字のグリッドを指定して、グリッド内のすべての単語を検索し、どの単語にも属さない文字を削除します。単語は、前方、後方、上、下、斜めのいずれかです。グリッド内の複数の場所でリスト内の単語が出現しないと仮定することができます。 入力は常に次のようになります:単語のリスト、1行に1つ、その後に空白行、その後に文字のグリッドが続きます。 例 入力 ADA ALGOL ASSEMBLY BASIC COBOL DELPHI FORTRAN JAVA LABVIEW LOGO PASCAL PERL PHP PYTHON SMALLTALK VISUALC LLJKCABLFCI OROLOBOCOIM GELACSAPRSX LPSTAHWVTAV ANRLXLXQRBI IHPLEDOXAHS KJYAPHPYNOU FABMADANZJA EVISNOHTYPL AAYLBMESSAC WEIVBALOGOM 出力 LL K FC OR LOBOCOI GELACSAPRS LP T TAV A L RBI IHPLED A S J APHP N …

9
自分の冒険を選択してください
Choose Your Own Adventureブックは、読者がストーリーの結果に影響を与える決定を行う必要があるインタラクティブな文学の形式です。ストーリーの特定の時点で、読者には選択可能な複数のオプションがあり、それぞれが読者を本の異なるページに送ります。 たとえば、ファンタジーの設定では、14ページで22ページに「ジャンプ」して神秘的な洞窟に飛び込むか、8ページにジャンプして近くの森を探索するかを決定する必要があります。これらの「ジャンプ」は次のようなページ番号のペアとして: 14 22 14 8 ほとんどの場合、物語には多くの結末がありますが、良い結末はわずかです。目標は、ストーリーをナビゲートして良い結末に達することです。 仕事: 特定の本の「ジャンプ」のリストが与えられたら、あなたの仕事は、特定の結末に至るルートを決定することです。これは非常に簡単なので、真の課題はできる限り少ない文字数で行うことです。 これは コードゴルフです。 サンプル入力(1が開始で、100が目標): 1 10 10 5 10 13 5 12 5 19 13 15 12 20 15 100 サンプル出力: 1 10 13 15 100 サンプル入力: 15 2 1 4 2 12 1 9 3 1 1 15 …

8
平方数の密度
数の平方数桁密度(SNDD)-自分で発明-は、連続した数字で見つかった平方数の数と数の長さの比です。たとえば、169は4つの正方形の数字(1、9、16、169)を含む3桁の数字であるため、4/3または1.33の正方形の数字の密度になります。4桁の数字1444には6つの正方形(1、4、4、4、144、1444)があるため、比率は6/4、つまり1.5です。前の例では、正方形の繰り返しが許可されていることに注意してください。また、441は番号1444内で連続して検出できないため、許可されません。 あなたの仕事は、与えられた範囲A-B(包括的)を検索して、最高の二乗数字桁密度を持つ数字を探すプログラムを書くことです。プログラムは、次の仕様に従う必要があります。 入力A、Bを1〜1,000,000,000(10億)の範囲で受け取ります。例:sndd 50 1000 結果として、最大のSNDDを持つ数値を返します。同点の場合、最小の数値を返します。 0は、0、00、000など、どのような形式の正方形としてもカウントされません。049や0049など、0で始まる正方形もカウントされません。 数値全体が正方である必要はないことに注意してください。 例: sndd 14000 15000 Output: 14441 sndd 300 500 Output: 441 ボーナス:1から1,000,000,000の間で最大のSNDDを持つ数字は何ですか?これが可能な限り大きいのか、それともより大きな範囲がより高い範囲にあるのかを証明できますか? 現在のスコア: ルビー:142 Windows PowerShell:153 Scala:222 Python:245 答えが選択されたので、ここにJavaScriptでの(変更されていない)リファレンス実装を示します:http ://jsfiddle.net/ywc25/2/

24
クリスマスの12日間の歌詞
これは誰にとっても楽しいチャレンジになると思い、人々が思いついた解決策を知りたいと思っています。 「12 Days Of Christmas」の歌詞を印刷する On the first day of Christmas, my true love gave to me, A partridge in a pear tree. On the second day of Christmas, my true love gave to me, Two turtle doves, And a partridge in a pear tree. ... On the twelfth day …

4
アスキーアートブレゼンハム線画
ASCIIアートでブレゼンハムの線を描く最短のプログラムを作成します。プログラムは、2つの整数xとy(コマンドラインまたはstdin、選択)を取り、左上から右xユニットおよび下yユニットに移動するASCII行を描画する必要があります。文字を使用し_、ブレゼンハムのアルゴリズム\に従って正しい場所に配置する必要があります。 を想定してもよいx >= yので、垂直セグメントは必要ありません。 _文字を使用しているため、1行のy=3場合、テキストを4行出力する必要がある可能性が高いことに注意してください(必要のない場合は、先頭に空白行を出力できます)。 例: 11 3 _ \___ \___ \_ 11 1 _____ \_____ 5 4 \ \_ \ \ ちょうど中間のポイントについては、どちらかの丸めを選択できます。 10 1 ____ \_____ or _____ \____

5
バギーコードの記述[​​終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Code Golf Stack Exchangeのトピックになるようにします。 2年前に閉店しました。 今こそ、悪いコードを書く能力を誇示するときです。私は、手に負えないCコンテストに最も類似した新しい種類のプログラミングパズルを試しています。主な違いは、これはそれほど悪意のあるものではないということです:それはいくつかの良いきれいな楽しみです。パズルの目標は、できるだけ多くのバグをプログラムに詰めることです。このコンテストの勝者は、キャラクターごとのバグが最も多いプログラムを書いた人です。 明確化を求める膨大なコメントのスレッドを避けるために、今、バグを限定するものと考えるものを定義する必要があります。 まず、バグはエラーではありません。インタープリターがエラーとして検出できる問題(たとえば、不一致の区切り文字、不適切な形式の構文、nullオブジェクトのプロパティへのアクセスなど)、またはプログラムの実行または続行を妨げる場合は、そうではありません。バグ。それ以外の場合、4文字を入力すると、インタープリターは8つの構文エラーをリストし、バグ文字比率2を要求できます。 第二に、バグは明らかに間違っていてはならず、バグはイースターエッグではありません。これは確かに主観的な基準ですが、この種のコンテストには不可欠だと思います。これは、明確な方法でコードを具体的にマングルする条件付きコードを使用できないことを意味します。(読んでください:誰も違いを知らないので、チューリングピット言語を使用してください)。 第三に、バグはもっともらしいものでなければなりません。これは上記のように主観的ですが、バグは、あまり注意を払っていないか、おそらく無知な人、または間違えた人によって書かれたように見えなければなりません。これには、たとえば、オフバイワンのエラーや、有効で正しく見えるが望ましくない動作を引き起こす構文(括弧の代わりに角括弧を使用するなど)が含まれます。 バグは、プログラムに何らかの望ましくない動作を引き起こす可能性があります。これには、例外的な場合の望ましくない出力、一見無関係に見える何かに基づいて異なる動作が含まれますが、これに限定されません奇数または偶数の秒数)、メモリリーク、データの損失など。 問題の例: すべてのASCII文字を数値の昇順で表示するプログラムを作成します。 回答例: Brainf ***、5文字、1バグ、0.2バグ文字比 +[+.] バグ:1のASCII文字を表示しません.+[.+]。に変更することで修正できます。 さて、あなたは今ではほとんど手に入れているはずだと思う、ここにあなたのパズルがあります: シーザー暗号をデコードし、単語をアルファベット順に並べ替える シーザー暗号は、一連の文字を取得し、アルファベットのn文字分だけシフトして作成されます。アルファベットの最初または最後までずっと進む場合、AはZの後にあり、ZはAの前にあります。次に例を示します。 Mannequin Nboofrvjo //Shifted over 1 or -25 Wkxxoaesx //Shifted over 10 -16 Ftggxjnbg //Shifted over -7 or 19 2つの入力が与えられます(入力は取得できますが、合理的には最も便利です)。最初の入力は単語で、2番目の入力はそれがシフトされる値です。タスクは、デコードされた単語を出力し、アルファベット順にソートされた後にデコードされた単語を出力することです。 例(悪い男の子に不快感を与えない、単なる例です): 最初の入力:gtdx wjbfwiji。ljy Gfi hfssty 2番目の入力:5 最初の出力:男の子に報酬が与えられます。悪いことはできません …

7
チックタックトー辞書
TicTacToeゲームは、プレイヤーが自分の行動を起こすような位置のシーケンスを示す文字列で表すことができます。 0 1 2 3 4 5 6 7 8 X常に最初にプレイすると仮定します。 「012345678」の文字列はゲームを示します XOX OXO XOX プレイヤーがをXマークするとゲームは既に勝ち6、その時点でゲームが終了し、に勝ちを与えXます。(つまり、プレーヤーが勝ったら残りの動きを無視します) あなたの課題(コード)は、すべてのゲーム(ソート順)とその結果を印刷することです。 フォーマット <movesequence>:<result>\n 例えば: 012345678:X 012345687:X 012345768:X ... 意味X受賞第一のプレーヤーのために、O第二のプレーヤーのための、およびD描画のために。 あります9!(362880)ゲーム。 結果を確認するためのデータを次に示します。 'X' Wins: 212256 'O' Wins: 104544 Draws : 46080 これはcodegolfであり、実行時間は1分以内でなければなりません。楽しんで! 編集:余分な詳細を削除し、そのまま印刷しstdoutます。ファイルを作成する必要はありません。

30
単語の文字を「追加」する
私の父は引退した教師であり、彼は学生が単語を綴るスペルと数学のクイズを組み合わせて与え、その後、a = 1、b = 2などの文字を加算して単語を「採点」しました。 (例:cat = 3 + 1 + 20 = 24)。これにより、クイズの採点が容易になりました。スペルが間違っている単語ではなく、誤った「スコア」をチェックするだけで済み、2つのスキルを一度にテストできるという利点がありました。 彼は私の友人を雇って、彼のために単語を採点するプログラムを書いたので、彼は間違いなく長い回答キーを生成することができました。この問題は、そのプログラムに触発されています。 要件: 大文字と小文字の任意の単語を受け入れます スペース、ハイフン、@ ^%#などの特殊文字に対してエラーを返します。 a = 1、b = 2、...およびA = 1、B = 2、... 単語のスコアを印刷する (オプション)スコアリング後に単語が辞書にあることを確認し、ない場合は警告を出力します。 外部の文字->数字辞書をインポートしません。自分で生成する必要があります。 任意の言語が受け入れられます。これは「デジタルルートバトル」に似ていますが、はるかに簡単です。
17 code-golf  word 

30
IPv4整数変換関数
IPアドレスを整数表現に変換し、整数として出力する最短の関数を作成します。 IPv4アドレスを整数表現に変更するには、次の計算が必要です。 IPアドレスを4つのオクテットに分割します。 (Octet1 * 16777216) + (Octet2 * 65536) + (Octet3 * 256) + (Octet4) サンプル入力 192.168.1.1 10.10.104.36 8.8.8.8 サンプル出力 3232235777 168454180 134744072

2
自由なn-ポリオミノを持つn X n正方形の個別のタイルの数
最新の「素敵な」 OEISシーケンスであるA328020は、数分前に公開されました。 自由なn-ポリオミノを持つn X n正方形の個別のタイルの数。 このシーケンスは、正方形の対称性までのタイルをカウントします。シーケンスには6つの用語がありますが、ここの人々がさらに拡張できるかどうかを確認したいと思います。 例 ためn=4OEISからこのイメージに示すように、このようなグリッド22があります。 クレジット:Jeff Bowermaster、A328020(4)のイラスト。 チャレンジ この前の課題と同様に、この課題の目標は、このシーケンスで可能な限り多くの項を計算することです1, 1, 2, 22, 515, 56734。n項は、nポリオミノを含むn X nグリッドのタイル数です。 好きなだけコードを実行します。このチャレンジの勝者は、シーケンスのほとんどの用語とそれを生成するコードを投稿するユーザーです。2人のユーザーが同じ数の用語を投稿すると、最後の用語を最も早く投稿した人が勝者となります。

1
強力な接続
前書き 次のような1つの大きな正方形の板で定義されたプランテーションがあります。 各小さな正方形の中の数字は、そのエリアの価値/現金/ ...を表します 農家は、接続されたN個の正方形を見つけるための支援が必要です(つまり、すべてのN個の正方形には少なくとも1つの共有境界線が必要です)です。 例えば: の場合N=1、出力はでなければなりません140。 の場合N=6、.. ..出力はでなければなりません315。 チャレンジ プログラム/関数は、マトリックスの値と数値Nを入力/引数として受け取り、強力な接続の値を出力する必要があります。 これはcode-golfなので、バイト単位の最短回答が勝ちです! 例 入力: 10 -7 11 7 3 31 33 31 2 5 121 15 22 -8 12 10 -19 43 12 -4 54 77 -7 -21 2 8 6 -70 109 1 140 3 -98 6 13 20 …
17 code-golf  grid 

3
三角形を失うことなく三角形配列からポイントを削除する
私が持っている組合せ論の問題、私は上に置くしたいというOEISを -the問題は、私は十分な条件を持っていないということです。このコードの課題は、より多くの用語を計算できるようにすることです。勝者は、最も多くの用語を含む提出物を持つユーザーになります。 問題 辺の長さがnnn三角形の電球の配列を与えたとしましょう: o o o o o o o o o o o o o o o o o o o o o 1 2 ... n 次の例のように、「直立した」正三角形を形成する3つの電球をオンにします。 o o x o o o o o o o o x o o x o o o o o …

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