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

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

1
難しいゲームを探す
あなたが退屈している場合にプレイする楽しいゲームは、Diffy Gameです。それは非常にシンプルで、多くの時間を消費できるワンプレイヤーゲームです。 Diffyゲームは次のように機能します。まず、負でない整数のリストから始めます。この例では、 3 4 5 8 次に、隣接する番号の絶対差を取ります (8) 3 4 5 8 5 1 1 3 その後、繰り返します。ループに入ったことに気付くまで繰り返します。そして、一般的にゲームは最初から再び始まります。 3 4 5 8 5 1 1 3 2 4 0 2 0 2 4 2 2 2 2 2 0 0 0 0 0 0 0 0 多くの場合、ゲームには目標がなく、頭の中で算術を行うことで時間を割いています。しかし、このゲームをプレイする喜びがあるとき、私の目標は常にある期間を選択して、その特定の期間でループするゲームを構築することです。 すべてのゲームが定期的であるわけではありません。たとえば、上の例は最終的にすべてゼロのゲームに到達し、開始位置に戻せないため、定期的ではありません。実際、ほとんどのゲームは、まれな宝石であるいくつかのゲームを定期的に作っているわけではないようです。 特定の期間でループするゲームを考えると、シーケンスを2倍にするだけで同じ期間でループする別のゲームを作成するのは簡単です。たとえば、ゲーム: 1 …

30
lwap彼女はのどが痛い!
リストまたは区切り文字列が指定されている場合、各単語の最初の文字を1ワード後にリストまたは区切り文字列を出力します。 この課題では、「単語」はスペース、改行、タブ文字を除くすべての印刷可能なASCII文字のみで構成されます。 たとえば、「Good afternoon、World!」という文字列を使用します。(スペース区切り): 1. String "Good afternoon, World!" 2. Get the first characters: "[G]ood [a]fternoon, [W]orld!" 3. Move the characters over. The character at the end gets moved to the beginning. "[W]ood [G]fternoon, [a]orld!" 4. Final string "Wood Gfternoon, aorld!" これはcode-golfなので、最短のコードが勝ちます! テストケース: Input -> output (space-delimited) "Good afternoon, World!" …
27 code-golf  string 

30
スペースの削除、大文字の使用の維持
入力は、英語の文、フレーズ、または単語になります。のみが含まれますa-zA-Z' -,.!?。タスクは、入力を取得し、スペースを削除してから、大文字を再配分して、前に大文字にされたインデックスの文字(および前に大文字にされたインデックスの文字のみ)が大文字になるようにします。 たとえば、入力がの場合、A Quick Brown Fox Jumped Over The Lazy Dog大文字の(0から始まる)インデックスは0, 2, 8, 14, 18, 25, 30, 34, 39です。次に、入力からスペースを削除しますAQuickBrownFoxJumpedOverTheLazyDog。次に、すべての文字を小文字にしますが、0, 2, 8, 14, 18, 25, 30, 34, 39:の大文字AqUickbrOwnfoxJumpEdovertHelazYdogは出力です。 入力 入力は、英語の文、フレーズ、または単語になります。小文字、大文字、ハイフン、アポストロフィ、コンマ、ピリオド、疑問符、感嘆符、スペースのみを含めることができます。 出力 入力が大文字のdの大文字のインデックスにある文字で、スペースが削除された小文字のdの入力。 注:IndexOutOfRangeまたは同様のエラーでプログラムをクラッシュ(実行が終了するエラー)することはできません。 テストケース Hi! Test! Hi!tEst! A Quick Brown Fox Jumped Over The Lazy Dog AqUickbrOwnfoxJumpEdovertHelazYdog testing TESTing TeStING testing …
27 code-golf  string 

30
アレイをトリムします!
入力として整数配列と2つの数値が与えられた場合、数値で指定された特定の量の最初と最後の要素を削除します。入力は任意の順序にすることができます。 最初のx要素(xは最初の数値入力)を削除し、最後のy要素(yは2番目の数値入力)も削除する必要があります。 結果の配列は、少なくとも2つの長さを持つことが保証されます。 例: [1 2 3 4 5 6] 2 1 -> [3 4 5] [6 2 4 3 5 1 3] 5 0 -> [1 3] [1 2] 0 0 -> [1 2]

19
ルーローの三角形を描きます!
ルーローの三角形は、各円は他人の中心を通ると、3つの円の交差によって形成される形状です。回転に関係なく、ルーローの三角形の幅は常に円の半径に等しくなります。 画像:Wolfram MathWorld r入力として幅を取り、その幅のReuleaux三角形(ピクセル単位)を表示するプログラムを作成します。 図形を分離して表示する必要があります。つまり、塗りつぶし、ストロークなし、塗りつぶしの背景の上に表示する必要があります。 code- golf-バイト単位の最短プログラムが勝ちます。

30
行方不明の手紙を見つける
ガイドライン 仕事 入力として連続する(増加する)文字の配列を受け取り、配列(一部の言語のリスト)にない文字を返すメソッドを記述します。 ルール これはコードゴルフなので、バイト単位の最短回答が勝ちです! 常に有効な配列を取得します 常に1つの文字が欠落している 配列の長さは常に少なくとも2です。 配列には常に1つのケース(大文字または小文字)の文字のみが含まれます。 入力と同じケース(大文字または小文字)で出力する必要があります 配列は常に1文字ずつ移動します(欠落している文字をスキップします) 配列の長さは2〜25です。 配列の最初または最後の要素が失われることはありません 例 ['a','b','c','d','f'] -> 'e' ['O','Q','R','S'] -> 'P' ['x','z'] -> 'y' ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','w','x','y','z'] -> 'v'

10
(ほぼ)任意の数値で方程式を解く
+=-少なくとも1つの文字の文字列が与えられた=場合、数学方程式が満たされるように、すべてのシンボル間および開始と終了に正の整数を挿入します。 たとえば、与えられた入力 +-=-= このように正の整数AからFを挿入する必要があります A+B-C=D-E=F 式はすべて、すなわち、満たされていることなどA + B - CとD - Eし、Fすべて同じ番号です。 方程式が機能する限り、正の整数のセットを使用できるため、これを行うには多くの方法があります。ここの各行は、入力に対して可能な有効な出力です+-=-=。 2+3-4=6-5=1 1+1-1=2-1=1 4+2-4=4-2=2 100+1-10=182-91=91 89+231-77=1024-781=243 式の値は、挿入された数値のように正の整数である必要はないことに注意してください。たとえば、入力-=-が与えられた場合、出力1-10=8-17(-9の値)と10-1=17-8(9の値)は両方とも等しく有効です。もちろん、入力のよう=な正の数値のみを5=5挿入できるため、式として負の値を持つことは不可能です。 また、ゼロは正の整数ではないことに注意してください。 バイト単位の最短コードが優先されます。 数値を文字列に直接挿入する代わりに、リストとして出力することもできます。文字列を出力する場合、記号と数字を区切るスペースがあります。したがって、入力+-=-=、出力 2, 3, 4, 6, 5, 1 または 2 + 3 - 4 = 6 - 5 = 1 出力と同等です 2+3-4=6-5=1 テストケース Input | One Possible Output = | …

6
ヒルのチーム!
この課題は、@ HelkaHombaの優れた課題である赤対青ピクセルチームバトルボットに触発されました。このチャレンジは、おそらくこのサイトで見た中で最高のチャレンジでした。今まで。 私の挑戦はまだ大きく異なりますが、@ HelkaHombaはそのインスピレーションに感謝します。 概要 これは、すべてのプレイヤーがあなたのチームで生き残っていることによってあなたのチームが勝つ丘のチームです。つまり、最後のチームに立って勝ちます。抽選はやり直されます。 あなたはボードに乗っています。最初のラウンドでのポジションを知っています(0にチェックマークを付けます)。また、あなたはあなたの周りの地域に誰がいるか知っています: この場合、あなたの周りには誰もいませんでした。ontickハンドラーの最初の引数で周囲のアイテムを見ることができます。APIについては後で詳しく説明します。 あなたのチーム チームはユーザーIDによって決定されます。それを見つけるには、プロフィール画像をクリックしてください: 次に、アドレスバーでユーザーIDを見つけます。 奇妙な場合、あなたは青いチームにいます。 偶数の場合、あなたは赤チームです。 手描きのサークルを歓迎します。 あなたの(ボットの)名前 ボットの名前は、チームの最初の文字(「r」または「b」)で始まります。正規表現と一致する必要があり/^(r|b)[A-Za-z_-]$/ます。それ以外は、ボットの名前を選ぶことができます。既存のものを使用しないでください。 起動 赤いプレーヤーはマップの上部近くから始まり、青色のプレーヤーは下部近くから始まります。関数のenvironmentパラメーターの最初のティック(ターン)に関する特別な情報が提供されontickます。保管することをお勧めします。詳細については、APIをご覧ください。 あなたの番 順番は最初はランダム化されますが、その後は変わりません。 ターンアクション ターンごとに1つのアクションしか行えません。 移動する 移動したい場合this.move(num)は、API を呼び出します。num移動したいセルです: 移動できる数値の相対位置は、グローバル定数に保存されますthreeByThree。 [ [0, 1, 2], [3, undefined, 4], [5, 6, 7] ] 壁や他のプレイヤーに移動しても、何も起こりません。 回転 回転するには、を呼び出しますthis.rotate(num)。Numは、回転させる方向です。 回転は絶対です。 殺します (別のチームの)他のプレイヤーが直面しているセルにいる場合、this.kill()それらを呼び出して殺すことができます。誰もいない場合、または彼らがあなたのチームにいる場合、これは何もしません。例: になっている場合0、緑を殺すことができます。1になっている場合、青を殺すことができます。2になったら、オレンジを殺すことができます。3になったら、黄色を殺すことができます。 爆弾 爆撃は、あなたとあなたの周りの9マスのチームメイトを含むすべてのプレイヤーを殺します。例: なぜあなたはこれをしたいのですか? 神風。あなたの周りの9つのセルにあなたのチームにいないプレイヤーがもっといるなら、あなたのチームにもいるので、爆撃を検討するかもしれません。(最初に仲間に通知することをお勧めします!) 地雷を配置する これにより、チームにいない他の人の死の広場が作成されます。地雷を配置すると、その上に足を踏み入れないように移動します。あなたは呼んでthis.landMine(num)numは、あなたがに行きたいの正方形です。例: …

16
コードの変更、シーケンスの変更:警官
これは警官と強盗の挑戦です。強盗スレッドについては、こちらをご覧ください。 この課題には、警官が選択した2つのOEISシーケンス(S 1、S 2)と、それらのシーケンスをどれだけうまくゴルフと難読化できるかが含まれます。 警官の挑戦 警官としてのあなたの挑戦は、自由に利用できる言語と2つのOEISシーケンスを選択することです。次に、入力nを取得してS 1(n)を生成するコードAをその言語で記述します。そのコードがX文字のレーベンシュタイン距離(Xはせいぜい)で変更され、同じ言語でコードBに変換されると、S 2(n)を生成する必要があります。実際にこのコードBを記述する必要がありますが、チャレンジが安全になるまで公開しないでください(以下を参照)。0.5 * (length A) 警官の提出は、言語名、完全なコード含まれている必要がありますA、のバイト数A、Xの彼らの秘密を取得する方法について多くの変化の値がBのコード、および選ばれたS 1とS 2のシーケンス番号を。各シーケンスのインデックスを0にするか1にするかを選択できますが、提出時に指定してください。 特定の提出物を解読するには、強盗は、S 2(n)を生成し、Y文字がA(with )から離れるYと同じ言語(およびバージョン)のプログラムCを作成する必要があります。強盗は必ずしも警官が(密かに)生成したものとまったく同じBコードを見つける必要はありません。Y <= X 勝利と得点 警察官の回答が7日(168時間)以内に解読されていない場合、独自のBソリューションを公開できます。この時点で、回答は安全と見なされます。解決策を公開しない限り、7日が経過していても、強盗によってまだ解読されている可能性があります。回答がクラックされた場合、対応する強盗の回答へのリンクとともに、回答のヘッダーにこれを記載してください。 警官は、最短のAでクラックのない提出を行うことで勝ちます。同点の場合、最小のXがタイブレーカーとして使用されます。まだ同点であれば、以前の提出が勝ちます。 さらなるルール ハッシュ、暗号化、または乱数生成に組み込み関数を使用しないでください(乱数ジェネレーターを固定値にシードした場合でも)。 プログラムまたは関数のいずれかが許可されますが、コードはスニペットであってはならず、REPL環境を想定してはなりません。 入力を受け取り、便利な形式で出力できます。入出力メソッドは、両方のシーケンスで同じでなければなりません。 この挑戦のためのレーベンシュタイン距離のための決定的な計算がある。この1プラネットCalcの上。 CnRチャレンジであることに加えて、これはコードゴルフであるため、すべての通常のゴルフルールが適用されます。

29
番号連鎖述語
問題: あなたの仕事は、一連の数字の中で、すべての数字にその数字の前の数字の少なくとも1つが含まれているかどうかを判断することです。 たとえば、次の例は真実を返します。 [1, 12, 203, 0, 30] ^ ^ Contains a 0 ^ Contains a 2 ^ Contains a 1 以下はfalseyを返すはずです: [1, 32, 23, 34] ^ Doesn't contain a 1, therefore false あなたの提出物は、機能または完全なプログラムにすることができます。 入力: 入力には、合理的なタイプのシーケンスを使用できます。数字の配列、文字列の配列、数字の区切り文字列など。 ただし、順序は重要であるため、入力として受け入れることを選択する構造は、明らかに明確な順序を持たなければなりません。 入力は、stdinを介して、または引数として取得できます。 あなたは仮定することができます: すべての数値は負でない整数になります 入力には常に少なくとも2つの数字が含まれます 入力番号は0で始まりません 出力: 出力は、上記の仕様が満たされているかどうかを表す、真実の値または偽の値(言語で定義)になります。 真/偽の値は、テスト間で一貫している必要はありません。 stdoutに出力するか、返すことができます。 テストケース: True cases: [1, …
27 code-golf 

30
2017年のすべての日曜日を印刷する
次の形式で2017年のすべての日曜日の日付を印刷します:dd.mm.yyyy。 期待される出力: 01.01.2017 08.01.2017 15.01.2017 22.01.2017 29.01.2017 05.02.2017 12.02.2017 19.02.2017 26.02.2017 05.03.2017 12.03.2017 19.03.2017 26.03.2017 02.04.2017 09.04.2017 16.04.2017 23.04.2017 30.04.2017 07.05.2017 14.05.2017 21.05.2017 28.05.2017 04.06.2017 11.06.2017 18.06.2017 25.06.2017 02.07.2017 09.07.2017 16.07.2017 23.07.2017 30.07.2017 06.08.2017 13.08.2017 20.08.2017 27.08.2017 03.09.2017 10.09.2017 17.09.2017 24.09.2017 01.10.2017 08.10.2017 15.10.2017 22.10.2017 29.10.2017 05.11.2017 12.11.2017 19.11.2017 26.11.2017 …

2
2D迷路マイナス1D
この課題は、2D迷路を1D迷路に変換することです。 概要 +-+-+-+-+-+-+ +-+-+-+-+-+-+ graph { | | | | |A| | B| A B A -- D + + + + +-+-+ + + + + +-+-+ \ | C -- D | | | | | | | | \ | D -- E +-+-+ +-+-+ + +-+-+ …

15
OVSFコードですか?
1sと-1sのリストが与えられたら、それが有効なOVSFコードかどうかを判断します(真偽値または偽値を出力します)。 OVSFコードは次のように定義されます。 [1] OVSFコードです。 場合はX、次に、OVSFコードであるX ++ XとX ++ -Xの両方のOVSFコードです。 以下++はリストの連結-で、リスト内のすべての要素を否定します。 他のリストは有効なOVSFコードではありません。 あなたは、入力リストにのみ含まれているとして-1と1していますが、その長さが2のべき乗ではありません空正しくリスト、などのリストを処理する必要があります。 最短コード(バイト単位)が優先されます。 テストケース [] -> False [1] -> True [-1] -> False [1, 1] -> True [1, -1] -> True [1, 1, 1, 1] -> True [1, 1, 1, 1, 1] -> False [1, -1, -1, 1, -1, 1, …

19
ASCIIブックシェルフ
基本的に一緒に積み重ねることができる木製の箱である積み重ね可能な棚を知っていますか?ASCIIアートを使用した本棚から本棚を作成することをシミュレートします。 私たちの本はすべて便利なサイズで統一されており、すべて次のように見えます。 |X| |X| |X| 本棚は個別の箱で、常に内側が3文字の高さ(直立した本に収まるのに十分な大きさ)で、|左右の-文字、上下の文字で構成され、X本が収まるのに十分な幅です(X入力は整数)。たとえば、サイズの本棚は3次のとおりです。 |---------| | | | | | | |---------| 3書籍をそのように収めることができるからです |---------| ||X||X||X|| ||X||X||X|| ||X||X||X|| |---------| 入力は、2つの厳密に正の整数にXなりますY。ここXで、棚の幅(本で測定)と、Y積み重ねなければならない本の数です。1つの棚に収まるよりも多くの本がある場合は、上部にさらに棚を追加する必要があります。たとえば、ここに入力があります4 wide / 6 books: |------------| ||X||X| | ||X||X| | ||X||X| | |------------| |------------| ||X||X||X||X|| ||X||X||X||X|| ||X||X||X||X|| |------------| Y % X > 0書籍の数が棚サイズの整数倍でないことを意味する場合、残りの書籍は一番上の左端の位置に移動し(4 6上記の場合のように)、その棚の残りの部分はスペース。 入力 二厳密に正の整数任意の便利な形式で、各>0。 どちらの順序でも入力できます(たとえば、棚のサイズを最初に、次に本の数、またはその逆)。提出物に入力順序を明記してください。 どちらの入力も、言語のデフォルト[int]サイズ(または同等のサイズ)よりも大きくないと想定できます。 出力 結果として生じる本と本棚のASCIIアート表現。 …

1
そのPRNGは誰ですか?
625個の32ビット符号なし整数のシーケンス(つまり、範囲内[0, 2**32))が与えられた場合、次の疑似乱数ジェネレーターのどれがシーケンスを生成したかを出力します。 線形合同ジェネレータ Xorshift メルセンヌ・ツイスター 具体的には、このチャレンジに使用されるこれら3つのジェネレーターのC実装は次のとおりです。 #include <stdint.h> /* all code adapted from the sample implementations on the following Wikipedia pages: https://en.wikipedia.org/wiki/Linear_congruential_generator https://en.wikipedia.org/wiki/Xorshift https://en.wikipedia.org/wiki/Mersenne_Twister */ uint32_t lcg_seed; uint32_t xor_x, xor_y, xor_z, xor_w; void lcg_srand(uint32_t seed) { lcg_seed = seed; } uint32_t lcg(void) { lcg_seed = ((uint64_t) lcg_seed * 1103515245 + …

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