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

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

30
一意性からリバースエンジニアリング(Copのスレッド)
警官のプログラムの出力(o)、使用されるバイトカウント(n)および一意のバイト数(c)が与えられると、警官の出力に一致する一意のバイトをn持つバイト長の対応するコードをc見つけますo。 これは警官のスレッドです。ここでクラックされるポストソリューション。 強盗のスレッドがここに位置しています。 警官は次のような解決策を投稿する必要があります。 #[Language], `n` Bytes, `c` Unique Bytes (c*n points) [Cracked](Link-To-Crack) [Output] --- (Optional spoiler) ルール プログラムに入力を行うことはできません。 プログラムは少なくとも1バイトを使用する必要がありますが、255バイトを超えることはできません。 出力自体も255バイトに制限されています。 プログラムを複数回実行する場合、一貫した出力結果が必要です。 提出物が7日以内にクラックされない場合、「安全」とマークすることができます。 安全とマークするときは、目的のソリューションを投稿し、としてスコア付けしてくださいc*n。 回答に「+15 」が本当に必要な場合にのみ、回答を「安全」とマークしてください。どれだけ長く行けるかを見るのがもっと楽しいです。 勝ち c*nスコアが最低の割れていない投稿が、警官のスレッドに勝ちます。 これは、10の安全な回答、または数週間後に決定されます。 注意事項 あなたが生意気に感じたら、ネタバレタグを使用してアルゴリズムをユーザーに伝えることができます。 クラックされていない提出: fetch("https://api.stackexchange.com/2.2/questions/147635/answers?order=desc&sort=activity&site=codegolf&filter=!.Fjs-H6J36vlFcdkRGfButLhYEngU&key=kAc8QIHB*IqJDUFcjEF1KA((&pagesize=100").then(x=>x.json()).then(data=>{var res = data.items.filter(i=>!/^#.*cracked/im.test(i.body_markdown)).map(x=>{const matched = /^ ?#{1,3} ?(?:(?:(?:\[|<a href ?= ?".*?">)([^\]]+)(?:\]|<\/a>)(?:[\(\[][a-z0-9/:\.]+[\]\)])?)|([^, ]+)).*[^\d](\d+) ?\[?(?:.*(?:byte|block|codel)s?)(?:\](?:\(.+\))?)? ?(?:\(?(?!no[nt][ -]competing)\)?)?/gim.exec(x.body_markdown);if(!matched){return;}return {link: x.link, …

14
落ち着くことができますか?
でカタンの開拓者のレンガ、ログ、鉱石、小麦、および羊:ボードゲーム、5つのリソースタイプがあります。集落の建設には、レンガ、丸太、小麦、羊が必要です。ただし、4つの同一のリソースを交換して、異なるタイプのリソースを取得することもできます。たとえば、4つの鉱石を手に持っている場合、それらすべてを交換して1頭の羊を入手できます。 あなたの仕事は、私の手を与えられて、私が和解を構築できるかどうかを判断することです。 あなたのタスク 入力は文字の配列になりますB、L、O、W、およびS、任意の合理的なフォーマットで撮影しました。これらの文字は、上記の5つのリソースタイプに対応しています。私は、4種類の取引の可能性を考慮して、和解を構築するために必要なリソースがあるかどうかを出力する必要があります。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 ノート あなたは、私が実行する必要がある取引または私が構築できるいくつの和解を出力する必要はありません。単純な「はい」または「いいえ」で十分です。 入力が特定の順序であると想定することはできません。特に、同じタイプのリソースがグループ化されているとは想定できないためOBLSO、有効な入力です。 これは意思決定問題であるため、選択した2つの値が明確で一貫している限り、「はい」と「いいえ」を意味する任意の値を使用できます。 ここで関係しているルールは、上記のルールのみです。他のプレイヤーや港での取引のような、より複雑なカタンの開拓者のルールはここでは関係ありません。 入力された文字(B、L、O、W、Sそれは選択のあなたの特定の言語のために簡単である場合)ので、長い5つの別個の入力があるので、他の値で置換することができます。他の入力値を使用する場合は、回答でそれらを指定してください。 例 BLWS -> Yes OOOOWLB -> Yes (trade four O for a S) OOW -> No BBBO -> No (empty input) -> No BBBBLW -> No BBBBBLW -> Yes (trade four B for a S) OOOOOOOOOOOOOOOO -> Yes (sixteen …

5
シュートをトリガーしてジャックポットを保護する
ゲームショーに参加します。課題の1つは次のように機能します。 最初の部屋には、多数の同一のボールが含まれています。 2番目の部屋には、一連のシュートがあり、各シュートには、ボールがいくつ置かれたかを数えるセンサーがあります。シュートに置かれたボールは回収できません。 各シュートは、一定数のボール(トリガーカウント)が投入された後にトリガーされます。トリガーされると、ライトが点滅し、ノイズが発生し、トリガーしたことは間違いありません。 N次のチャレンジに進むには、シュートをトリガーする必要があります。 トリガーのカウントは知っていますが、カウントとシュートの対応はわかりません。 最初の部屋から2番目の部屋にボールを移動する1つの機会があります。ボールをシュートに入れると、それ以上ボールを取り戻すことはできません。 あなたが取る各ボールは、ジャックポットからお金を差し引きます。 明らかに、あなたはあなたが挑戦に合格することを確実にしたいが、大当たりのお金の損失を最小限に抑えたい。プログラム、関数、動詞などを書いて、必要なボールの数を教えてください。 例 トリガーカウントが2、4、および10で、通過するために2つのシュートをトリガーする必要があるとします。10個のボールを渡す戦略があります。最初のシュートに最大4個のボール、2番目のシュートに最大4個のボール、3番目のシュートに最大4個のボールを配置します。3つのシュートの1つは2つのボールだけでトリガーするため、合計10を使用するだけです。10未満で動作することが保証されている戦略はないため、正しい出力になります。 入力 入力は、整数トリガーカウントの配列と、トリガーするシュートの数を示す整数で構成されます。どちらの順序でも2つの入力を取ることができ、必要に応じて、配列の長さで3番目の入力を取ることができます。 すべての入力がゼロよりも大きく、トリガーする必要があるシュートの数がシュートの数を超えないと仮定できます。 また、回答で明確に述べている限り、カウントがソートされている(昇順または降順)と想定することもできます。 出力 出力は、最適な戦略に必要なボールの数を示す単一の整数でなければなりません。 テストケース フォーマット: N counts solution 1 [2 4 10] 6 2 [2 4 10] 10 3 [2 4 10] 16 1 [3 5 5 5 5 5 5 5 5 5] 5 2 …

21
ゆっくりと収束するジグザグ
単一の正の奇数整数を入力として指定すると、次の形式で、文字列のリスト、文字のリストのリスト、または改行で区切られた文字列として収束ジグザグを返します。 # # # # # # # # # # # #一貫性のある非空白文字に置き換えることができます。各行の末尾の空白は許可され、末尾の改行は許可されます。 ジグザグは列から始まり、1各行が1列ずつ右に移動し、列n(n入力がある場所)に到達します。次いで、それは左て移動する2右へ、n-1次いで左、32つの境界の中央の列でジグザグ終了するまでに収束して、( (n+1)/2)。 テストケース 上記の例は、のテストケースです5。 以下は、個々のテストケースです。 3 # # # # 7 # # # # # # # # # # # # # # # # # # # # # # 1 #

19
プライムツインはありますか?
整数は、正であり、正確に2つの異なる除数(1とそれ自体)がある場合にのみ素数です。ツインプライムペアは、2つの要素で構成されます:pおよびp±2両方とも素数です。 入力として正の整数が与えられます。あなたの仕事は、与えられた整数が双子のペアに属するかどうかに応じて、標準の決定問題のルールに従って、真偽/偽を返すことです(値は一貫している必要があります)。 テストケース Truthy(ツインプライムズ): 3, 5, 7, 11, 13, 17, 19, 29, 31, 41, 43 偽(ツインプライムではない): 2, 15, 20, 23, 37, 47, 97, 120, 566 これはcode-golfなので、バイト単位の最短コードが勝ちです!

25
文字が減る一方で数字が増える
このStack Overflowの質問に触発された:リストの並べ替え:数字は昇順、文字は降順。あなたの仕事は次の問題を解決することです。これはcode-golfなので、できる限り少ないバイトで行う必要があります。 :あなたは、文字(任意の合理的な形含む入力として、オブジェクトのリストを取る必要がありstring、charおよび数字など)。次に、数字を昇順で、文字を降順で並べ替える必要があります。ただし、文字は文字の位置に、数字は数字の位置に保持する必要があります。たとえば、リストが次の場合: [L, D, L, L, D, L] 出力リストの形式は次のとおりです。 [L, D, L, L, D, L] 乗り越えます 入力: ['a', 2, 'b', 1, 'c', 3] 番号を昇順で並べ替えます。 [1, 2, 3] 文字を降順に並べ替えます: ['c', 'b', 'a'] それらを元に戻しますが、順序は同じままにします。 ['c', 1', 'b', 2, 'a', 3] ルール リストには文字と数字のみが含まれます。 リストは空かもしれません。 リストには、文字のみまたは数字のみを含めることができます。 言語が混合型配列をサポートしていない場合、数字の代わりに数字を使用できます。言語がこれをサポートしている場合は、混合型を使用する必要があることに注意してください。 文字は[a-z]またはのみになり[A-Z]、どちらを選択してもかまいません。 文字はa、最も低いもの、zつまり最も高いものとしてソートされa = 1, z = …

5
複雑なサイコロのローリング式
バックグラウンド 友達と定期的にD&Dをしています。サイコロを転がし、ボーナスとペナルティを適用することに関して、いくつかのシステム/バージョンの複雑さについて話している間、私たちは冗談めかして、サイコロを転がす表現のいくつかの追加の複雑さを思いつきました。それらのいくつかはとてつもなく広すぎました(2d6マトリックス引数1のような単純なサイコロ式を拡張するなど)が、残りは興味深いシステムになります。 チャレンジ 複雑なサイコロ式が与えられたら、次の規則に従って評価し、結果を出力します。 基本評価ルール 演算子が整数を期待しているが、オペランドのリストを受け取るたびに、そのリストの合計が使用されます 演算子がリストを期待しているが、オペランドに整数を受け取ったときは常に、その整数はその整数を含む1要素のリストとして扱われます オペレーター すべての演算子は二項中置演算子です。説明のために、aは左のオペランド、b右のオペランドになります。リスト表記は、演算子がリストをオペランドとして取ることができる例で使用されますが、実際の式は正の整数と演算子のみで構成されます。 d:a範囲内の独立した一様ランダム整数を出力します[1, b] 優先順位:3 両方のオペランドは整数です 例:3d4 => [1, 4, 3]、[1, 2]d6 => [3, 2, 6] t:bから最低値を取得a 優先順位:2 aリスト、b整数です の場合b > len(a)、すべての値が返されます 例:[1, 5, 7]t1 => [1]、[5, 18, 3, 9]t2 => [3, 5]、3t5 => [3] T:bから最高値を取得a 優先順位:2 aリスト、b整数です の場合b > len(a)、すべての値が返されます 例:[1, 5, …

5
西で最速の銃
あなたはミシシッピ川西部で最も荒く、最も強く、最もクールなカウボーイです。しかし、おかしなオタクWebサイトの一部の奇妙な男は、ランダムな未完成の風景にあなたを乗せて戦うことはクールだと判断しました。関係なく、あなたはまだ勝ちます。しかし、あなたが家に書くこれらの厳しい銃撃戦に勝つのを助けるために、風景の中に潜んでいるco病者がいくつの弾丸を持っているかを知ることは役に立ちます。 この貧しい男を助けてくれませんか。ASCIIランドスケープが与えられたら、その中の銃を見つけて、そこにいくつの弾丸が装填されているかを伝えます。これが銃です: (X) (X\ /X) (XVX) \X/ X上の写真のそれぞれは、弾丸の潜在的なスロットです。スロットにはスペースまたは次のいずれかが含まれます0,O,o(一貫性がない場合があります-カウボーイは銃にさまざまな種類の弾丸を装填した可能性があります)。 ランドスケープには、上記の説明に一致する銃が常に1つだけ存在します。ただし、銃の周囲および内部のスペースには何でも入れることができます。 入力 印刷可能なASCII(タブではない)と改行を区切る改行を含む文字列が与えられます。必要に応じて、文字列のリストを取得することもできます。文字列はすべてスペースで埋められるため、すべて同じ長さになります。入力は、少なくとも高さ4行、幅7列です。 ランドスケープには常に1本の銃があります。 出力 あなたはどのように多くの弾丸(出力は以下となり0, O, o、あなたの出力は常に間の意志ので、銃である)0とは6。 テストケース (0) ( ) (o\ /o( \ / ) (oVo) ( V ) \o/ \ / 0 ---------------------------- //////////////////////////// //////////////////////////// /////////////(o)//////////// ///////////(0\// )////////// ////////////( Vo)/////////// /////////////\ ///////////// //////////////////////////// ---------------------------- 3 ()()()()()()()()()()()()()()()()\)/)()()()()()()()()()()()() ()()()()()()()()()()()()()()()()(V)()()()()()()()()()()()()( ()()()()()()()(\0/)()()()()()()()()()()()()()()()()()()()()( ()()()()()()()()()()()()()()()()()()()()()()()( …
23 code-golf  string 

12
和で行列を埋める
チャレンジ: 正方形の入力行列Aが与えられた場合、4辺すべてに1行1列の行列を埋め込みます。 上下の行の各要素の値は、対応する各列の要素の合計である必要があります。 左右の列の各要素の値は、対応する各行の要素の合計である必要があります。 左上の要素と右下の要素の値は、対角線上の要素の合計である必要があります 右上隅と左下隅の要素の値は、対角線の要素の合計である必要があります。 例: A = 1 5 3 3 2 4 2 5 5 Output: 8 6 12 12 7 9 1 5 3 9 9 3 2 4 9 12 2 5 5 12 7 6 12 12 8 説明: 左上の要素と右下の要素は、対角線1 + 2 + 5 …

12
Divinacciシーケンス
ディビナッチ(OEIS) フィボナッチ数列を実行しますが、代わりに次を使用します。 f(n) = f(n-1)+f(n-2) つかいます: f(n) = sum(divisors(f(n-1))) + sum(divisors(f(n-2))) の入力に対してn、n番目の項を出力するには、プログラムに1つの入力のみが必要です。 最初の14の用語(0からインデックス、1からインデックス、使用した状態): 0 | 0 # Initial | [] 1 | 1 # Initial | [1] => 1 2 | 1 # [] + [1] | [1] => 1 3 | 2 # [1] + [1] | [1,2] => …

14
成功へのクロマキー
RGBカラー値#00FF00はかなり重要な値です。映画、テレビ番組、天気予報などの作成に使用されます。有名な「TV緑」または「緑スクリーン」の色です。 チャレンジ あなたの仕事は、PNG形式(または画像ライブラリの画像オブジェクトタイプ)と同じサイズの2つの入力画像を取得するプログラムを書くことです。1つのイメージには、任意の古いイメージを使用できます。もう1つは、色の背景を持つ画像です#00FF00。出力イメージは、最初のイメージの上にオーバーレイされた2番目のイメージで構成され、#00FF00色は存在しません(最初のイメージを除く)。入力や出力は、ファイルやGUIなどで実行できます。ここに示すように、RGB値の配列を入力として使用できます。画像には完全な不透明度のピクセルしかないと仮定できます。 基本的に... #00FF001つの画像のすべてのピクセルを取得し、背景画像の対応するピクセルに置き換えるプログラムを作成します。 テストケース @dzaimaが提供するもの:背景: 前景: 出力: もちろん、標準の抜け穴は固く禁じられています。これには、オンラインリソースを使用して行うことが含まれます。 これはコードゴルフですので、最短のコードが勝ち、最高のプログラマーが繁栄するかもしれません...

7
最短加算チェーン
加算チェーンは、1から始まる整数のシーケンスで、最初の1以外のすべての整数は、2つの前の整数の合計です。 たとえば、追加チェーンは次のとおりです。 [1, 2, 3, 4, 7, 8, 16, 32, 39, 71] 加算チェーンにする合計は次のとおりです。 1 + 1 = 2 1 + 2 = 3 1 + 3 = 4 3 + 4 = 7 1 + 7 = 8 8 + 8 = 16 16 + 16 = 32 7 + …

17
数字のパターンと一致しますか?
最近、数学のテストを受けましたが、テストの特定の数が興味深いパターンに一致していることに気付きました。番号(28384)は、次のような一般的な数字列と一致しました (n)(x)(n+1)(x)(n+2)(x)(n+3) etc... ここでnおよびxは1桁の整数です。シーケンスのいずれかで始めることができxたりnと、いずれかの端にxかn+y。 タスクは、複数桁の正の整数が与えられると、入力がパターンに一致するかどうかに応じて、真偽値または偽値を出力します。入力は4〜18桁です。入力を整数の文字列表現として受け取ることができます。入力は0で始まりませんが、0を含むか、0で終わることができます。 n+y 常に1桁の数字になります(したがって、長さの制限が18である理由)。 テストケース これらは真実の値を出力するはずです 182838485868788898 4344 85868 12223242526 そして、これらは偽物でなければなりません 12345 6724013635 36842478324836 1222232425 5859510511 すべてのコードゴルフと同様に、最短のコードが勝ちます!幸運と可能性があります、あなたの好意でこれまで!

9
すべてのサブセットの積を取る最速のアルゴリズム
n配列内の数値が与えられた場合(整数であるとは想定できません)、sizeのすべてのサブセットの積を計算したいと思いますn-1。 これは、すべての数値を乗算してから、数値がゼロでない限り、各数値で順番に除算することで実行できます。ただし、分割を行わずにこれをどのくらい迅速に行うことができますか? 除算を許可しない場合、サイズn-1のすべてのサブセットの積を計算するために必要な算術演算(乗算や加算など)の最小数はどれくらいですか? 明らかに(n-1)*n乗算で行うことができます。 明確にするために、出力はn異なる製品であり、許可されるメモリへの読み取りと書き込み以外の操作は乗算、加算、減算のみです。 例 入力は、3つの数字を持っている場合2,3,5、出力は3つの数字である15 = 3*5、10 = 2*5と6 = 2*3。 勝利基準 回答は、コードが使用する算術演算の数の正確な式を与える必要がありnます。人生をシンプルにするために、私はn = 1000あなたのフォーミュラにプラグインしてそのスコアを判断します。低いほど良い。 コードの正確な式を作成するのが難しすぎる場合は、それを実行してn = 1000、コード内の算術演算をカウントできます。ただし、正確な式が最適です。 n=1000簡単に比較できるように、回答にスコアを追加してください。

1
それはサボテンですか?
グラフ理論では、サボテンは接続されたグラフであり、グラフ内の異なる2つの単純なサイクルは、せいぜい1つの頂点を共有します。 これは、破線で囲まれた3つの単純なサイクルを持つサボテンです。 次のグラフは上の図と似ていますが、赤でラベル付けされた2つの頂点が2つの単純なサイクルで共有されているため、サボテンではありません。 たとえば、次のグラフのように、物事は少し複雑になります。 サボテンのように見えるかもしれませんが、そうではありません。これは、次のサイクルを強調表示することで表示できます。 このサイクルは、グラフの多くの明白なサイクルと複数のポイントを共有します。 定義 接続グラフは、任意の2つの頂点間に少なくとも1つのパスが存在するようなグラフです。 単純なサイクルは、同じ頂点で開始および終了し、頂点を複数回訪れないグラフ上のパスです。 単純なグラフは、頂点が2つ以上のエッジで互いに接続されておらず、頂点がそれ自体に接続されていない、無向で重みのないグラフです。シンプルなグラフは、最も基本的なタイプのグラフであり、ほとんどの人がグラフと言ったときの意味です。 仕事 入力として単純なグラフを取り、それがサボテングラフかどうかを判断します。TrueとFalseの2つの異なる値を出力する必要があります。適切な形式で入力できます。 これはコードゴルフですので、回答のバイト数を最小限に抑えることを目指してください。 テストケース 隣接行列としてのテストケース

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