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

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

5
ブラケットをバブルします!
このサイトには、ブラケットのバランス、およびブラケットのバランスの確認に関するいくつかの質問があります。バランスの取れたブラケットを何かに使う時が来たと私は提案します! 数学とプログラミングでは、ブラケットは泡のようなもので、内側のすべてが外側のすべてから隔離されているため、内側のすべてが平和に機能し、外側のすべてが1つのオブジェクトしか見ることができません。ただし、括弧のストリングは1次元ですが、通常、バブルは少なくとも2次元です。つまり、互いに接触したり、他のバブルの内側と外側を交差したりしない限り、バブルは自由に動き回ることができます。 チャレンジ 入力は、round ()、square []、curly、{}またはangleのいずれかの単一タイプの一致した括弧のストリングです<>。プログラムがどの種類を受け入れるかはあなた次第であり、1種類のブラケットのみを受け入れるプログラムは受け入れられます。(プログラムがそれらのいずれかを処理できる場合は架空のボーナス、同じ入力ですべてを処理できる場合は大規模な架空のボーナスポイント)。 出力は、同じ構成のバブルを生成し、2つの同一の文字列を持たないブラケットのすべての可能な再編成(元の入力を含む任意の順序)です。これは、技術的には場所を入れ替えることができる2つのバブルであるにもかかわらず、入力がの()()場合、出力もちょうど()()であることを意味します。大規模な想像上のボーナスの場合、{}[]()当然、入力は6つの異なる要素/文字列/行の出力につながります。 バブルを別のバブルの内側から外側へ、または外側から内側へクロスさせずに、バブルを移動させて一方をもう一方にすることができる場合、2つのバブルの構成は「同じ」です。ネストされた括弧をツリーにたとえると(一致する各ペアは1つのノードであり、その中の一致するすべてのペアはサブノードであり、その中の一致する各ペアは再びそれらのサブノードであり、以下同様)、任意のノードのサブノードが順序付けられます、バブルの単一の構成は、ノードが順序付けられていないツリーです。 文字列のリストまたは単一文字のリストのリストまたは何らかの種類の空白を含む単一文字列を返す、stdoutまたはstderr何らかの形式の表示可能な空白文字(最も一般的には改行またはスペース)各再編成。 各再編成の末尾のスペース、および実際の出力の前後の改行および空のリスト要素の末尾と先行が許可されます。入力で受け入れるのと同じ種類のブラケットを出力で使用する必要があります。ここで指定されている角かっこ、改行、スペース、および使用するセパレータは別として、何も印刷しないでください(不可視/幅ゼロの文字を含む)。 スコアは、コード内のバイト数です。各言語の最低カウントが優先されます。想像上のボーナスを定期的に獲得するか大量に獲得するかは注意できますが、スコアには影響しません。実際のボーナスはあまりにも難しいため、バランスを取ることができません。 入出力の例 例1: 入力: ()(()) 出力: ()(()) (())() 例2: 入力: (()())()() 出力: (()())()() ()(()())() ()()(()()) 例3: 入力: (()(()))() 出力: ((())())() ()((())()) (()(()))() ()(()(()))

9
感謝祭
明日、11月23日は、米国の感謝祭です。準備するには、ASCII七面鳥を調理する必要があります。ただし、計画が遅れているため、準備が必要な鳥の数を支援するプログラム(または機能)が必要です。 .---. _ .' './ ) / _ _/ /\ =(_____) (__/_/== =================== あなたが見つけた七面鳥はむしろ小さい側にあるので、あなたは次の比率を理解しました-1つの七面鳥が餌をやります: 白身の肉だけが好きな4人と、黒身の肉だけが好きな3人 または、どちらの方法でも構わない7人 またはその組み合わせ。 つまり、七面鳥には合計4食分の白身と3食分の黒身があります。さらに、部分的な七面鳥を購入して調理することはできません。 たとえば、白身の肉だけが好きな3人、黒身の肉だけが好きな6人、気にしない3人の場合、七面鳥が2匹必要です。これにより、8サービングの白と6サービングのダークが得られます。これは、誰もが満足し、残りの白い肉を食べるのに十分です: .---. _ .---. _ .' './ ) .' './ ) / _ _/ /\ / _ _/ /\ =(_____) (__/_/== =(_____) (__/_/== ===================================== 気にしない20人には、3匹の七面鳥が必要で、残りの白または黒が少し残っています。 .---. _ .---. _ .---. _ .' …

9
ASCII菱形グリッド
次のパラメーターを指定して、バイトカウントで測定した最短コードを記述し、菱形で構成されるASCIIグリッドを生成します。 m-1行の完全な菱形の数 n-行数 s-最小の菱形の側面 r-入れ子のレベル-「ベースのもの」(グリッドの交点間の偽物)の中にいくつの菱形があるか 例 1. Input: 5 3 1 0 Output: /\/\/\/\/\ \/\/\/\/\/ /\/\/\/\/\ \/\/\/\/\/ /\/\/\/\/\ \/\/\/\/\/ A 5x3 grid of rhombi with side 1, no nesting 2. Input: 3 2 2 0 Output: /\ /\ /\ / \/ \/ \ \ /\ /\ / \/ \/ \/ …

30
モジュラス合計
このシーケンスはmodの合計であるため、「イエスシーケンス」と呼びます。</ pun> このシーケンスでは、入力nよりも小さい正の整数mをすべて取得し、各mを法とするnの合計を取得します。言い換えると: an=∑m=1n−1nmodman=∑m=1n−1nmodma_n = \sum_{m=1}^{n-1}{n\bmod m} たとえば、用語14を使用します。 14 % 1 = 0 14 % 2 = 0 14 % 3 = 2 14 % 4 = 2 14 % 5 = 4 14 % 6 = 2 14 % 7 = 0 14 % 8 = 6 14 % …

8
文字列を広げる
正方形の文字列を指定すると、展開のすべての段階で文字列のすべての出力が生成されます。 弦は一度に4分の1回転だけ時計回りに展開する必要があります。 例 入力: A 出力: A 注:また、この特定のテストケースで複製された入力は、これがバイト数の削減に役立つ場合にのみ受け入れます。 入力: DC AB 出力: DC AB D ABC ABCD 入力: GFE HID ABC 出力: GFE HID ABC HG IF ABCDE IH ABCDEFG I ABCDEFGH ABCDEFGHI 入力: JIHG KPOF LMNE ABCD 出力: JIHG KPOF LMNE ABCD LKJ MPI NOH ABCDEFG NML OPK ABCDEFGHIJ …

13
Seqindignotシーケンス
タイトルは、「Sequence Index Digit Not」から作成されます。 チャレンジ: である整数nを指定すると、次のシーケンスの '番目の数を>= 0出力しnます。 以下に、最初の50個のアイテムと、その上の(0インデックス付き)インデックスを示します。 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 …

14
2点間の最短距離は線です
プログラムまたは関数をコーディングして、画面上に少なくとも400ピクセルx 400ピクセルのサイズのインタラクティブキャンバスを構築します。キャンバスは、タイトルバーの有無にかかわらず、境界線のあるまたは境界線のない任意の色にすることができます。 ユーザーはキャンバスの2つの異なる領域をクリックし、プログラムはそれら2つのクリック間のユークリッド距離(ピクセル単位)を何らかの方法(STDOUT、アラートの表示など)で出力する必要があります。2回のクリックは、左クリックのみ、右クリックのみ、1回目は左クリック、2回目は右クリック、2回のダブル左クリックなど、任意の組み合わせが可能です。特記事項:クリックアンドドラッグ(たとえば、2番目のポイントとしてMOUSEUPを使用)は特に許可されていません。2回のクリックが必要です。 ユーザーはこれを複数回実行できる必要があり、プログラムが終了/強制終了/強制終了などされるまで、毎回出力を取得する必要があります。コードのゴルファーが何であれ、クロージャの方法を選択できます(X、ctrl-Cなどをクリックします)。 ルール 完全なプログラムまたは機能のいずれかが受け入れられます。ただし、関数の場合は、何らかの方法でユーザーに出力を表示する必要があります(単に値を返すことは受け入れられません)。 出力は、コンソールへの出力、アラートとしての表示、キャンバスへの入力などが可能です。 標準的な抜け穴は禁止されています。 これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。

21
プライムギャップを見つける
プライムギャップは、2つの連続するプライムの差です。より具体的には、pとqがp < qで素数で、p +1、p +2、...、q -1が素数でない場合、素数pとqはn = q − pのギャップを定義します。ギャップはpから始まり、長さnを持つと言われています。 任意の大きな素数ギャップが存在することが知られています。つまり、nが与えられた場合、長さn以上のプライムギャップが存在します。ただし、長さが正確にnのプライムギャップは存在しない場合があります(ただし、大きいギャップは存在します)。 チャレンジ 正の整数を指定するとn、長さn以上のギャップを開始する最初の素数を出力します。 例として、入力の場合4、出力はである必要があります7。7と11は、少なくとも4だけ異なる最初の連続した素数であるためです(前のギャップは、1から2から3、2から3から5、2から5です。 7)。入力について3は、答えも7(長さ3のギャップがない)である必要があります。 追加規則 アルゴリズムは、理論的には任意の高さで機能するはずnです。実際には、プログラムが時間、メモリ、またはデータ型のサイズによって制限されている場合でも問題ありません。 入出力は合理的な手段で取ることができます。 すべてのプログラミング言語で、プログラムまたは機能が許可されます。標準的な抜け穴は禁止されています。 バイト単位の最短コードが優先されます。 テストケース Input -> Output 1 2 2 3 3 7 4 7 6 23 10 113 16 523 17 523 18 523 30 1327 50 19609 100 370261 200 20831323

20
x86 / x64マシンコードでのゴルフのヒント
私はそのような質問がないことに気づいたので、ここにあります: マシンコードでゴルフをするための一般的なヒントはありますか?ヒントが特定の環境または呼び出し規約にのみ適用される場合は、回答でそれを指定してください。 回答ごとに1つのヒントのみを入力してください(こちらを参照)。

20
チェンプライムですか?
数値は、次の2つの条件を満たす場合、陳素数です。 プライムそのものです それ自体に2を加えたものは、素数または半素数です。 素数とは、正確に2つの除数があり、それらの除数がそれ自体と1つで構成される数です。 準素数は、2つの素数の積である数値です。(12 = 2 * 2 * 3はセミプライムではありませんが、25 = 5 * 5はセミプライムです)。 あなたの仕事は、数が陳素数であるかどうかを判断することです。yesの場合は真実の値を、noの場合は偽の値を出力する必要があります。 入力は1以上の任意の整数になります。また、文字列、文字配列、または配列または数字として取得することもできます。 例: 101 -> truthy 223 -> falsy 233 -> truthy 1 -> falsy これはOEIS A109611です。 これは、一部、私はソフィー・ジェルマンの素数に触発されていますか?残念ながら、これは重複として閉じられたため、重複ではない、やや関連するチャレンジを投稿しています。

5
偽の統計
偽のニュースを発明する場合は、データをバックアップしてバックアップする必要があります。すでにいくつかの先入観を持っている必要があります。また、障害のあるロジックの議論を強化する統計情報が必要です。この挑戦はあなたを助けるはずです! 3つの入力番号がある場合: N-データポイントの数 μ-データポイントの平均 σ-データポイントの標準偏差。ここで、μおよびσは次の式で与えられます。 出力番号の順不同のリストは、𝑥 私を与え生成することになる、N、μ、およびσを。 I / O形式についてはあまり気にしませんが、μ、σ、および出力データポイントのある種の小数を期待しています。少なくとも、少なくとも3つの有効数字と少なくとも1,000,000の大きさをサポートする必要があります。IEEEフロートは問題ありません。 Nは常に整数で、1≤N≤1,000です。 μには任意の実数を指定できます σは常に0以上 データポイントは任意の実数にできます 場合はNが 1である場合、σは常に0になります。 ほとんどの入力には多くの可能な出力があることに注意してください。有効な出力を1つだけ与える必要があります。出力は、確定的または非確定的の場合があります。 例 Input (N, μ, σ) -> Possible Output [list] 2, 0.5, 1.5 -> [1, 2] 5, 3, 1.414 -> [1, 2, 3, 4, 5] 3, 5, 2.160 -> [2, 6, 7] 3, 5, …

16
コラコスキ削減
概要 皆さんの中には、コラコスキーシーケンス(A000002)を知っている方もいるかもしれません。これは、次のプロパティを持つ自己参照シーケンスです。 これは1と2のみを含むシーケンスであり、1と2の各グループについて、ランの長さを合計すると、長さの半分だけになります。つまり、コラコスキーシーケンスは、シーケンス自体の実行の長さを表します。これは、最初の1が削除された同じシーケンスを除き、これを行う唯一のシーケンスです。(これは、1と2で構成されるシーケンスに自分自身を制限する場合にのみ当てはまります-Martin Ender) チャレンジ 課題は、整数のリストが与えられることです: -1リストがコラコスキーシーケンスの有効なプレフィックスでない場合に出力します。 シーケンスがになるまでの反復回数を出力し[2]ます。 完成した例 提供された画像を例として使用する: [1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1] # Iteration 0 (the input). [1,2,2,1,1,2,1,2,2,1,2] # Iteration 1. [1,2,2,1,1,2,1,1] # Iteration 2. [1,2,2,1,2] # Iteration 3. [1,2,1,1] # Iteration 4. [1,1,2] # Iteration 5. [2,1] # Iteration 6. [1,1] # Iteration 7. [2] # Iteration 8. したがって、結果の数値は8の入力用です[1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1]。 9 …

11
これら2つの数字を追加するには、いくつのキャリーが必要ですか?
仕事 2つの正の整数が与えられた場合、基数10で長い加算で加算するために必要な桁上げの数を出力します。 例 ¹¹¹ <-- carries 999 + 1 ---- 1000 3つのキャリーが必要です。 ¹ 348 + 91 ---- 439 1つのキャリーが必要です。 テストケース 999, 1 -> 3 398, 91 -> 1 348, 51 -> 0 348, 52 -> 2 5, 15 -> 1 999, 999 -> 3 505, 505 -> 2 得点 これはcode-golfです。バイト単位の最短回答が優先されます。標準の抜け穴が適用されます。

1
簡易列車セット
Brioのような木製の線路から実際の列車の完全に小さな金属の完全なデジタル制御まで、さまざまな種類の列車セットが存在しますが、それらはすべて理想的にはできるだけ多くの部品を使用して設計するための線路を必要とします。 したがって、あなたの仕事は、利用可能なピースの入力が与えられた場合、すべての要素を使用して完全な閉回路を構築できるかどうか、そうでない場合は可能な最大回路からいくつのピースを残すかを決定することです。 これは単純化されたトレインセットであるため、大きな曲線、小さな曲線、直線の3つの要素しかありません。これらはすべて正方形グリッドに基づいています。 「ビッグカーブ」は90度の角で、各次元で2ユニットをカバーします 「小さな曲線」は90度の角で、各方向に1つのユニットをカバーします 「ストレート」は、1ユニット長のストレート要素です これは、可能な最小回路が4つの小さな曲線で構成されていることを意味します。これは半径1単位の円です。これは、直線要素のペアを追加してさまざまな楕円を形成することで拡張できます。曲線を追加したり、曲線の種類を混合したりすることで、他の回路も可能です。 このトレインセットにはジャンクションもトラックの交差方法も含まれていないため、2つの要素が他の要素の同じ端に接続する(Yフォーメーションなし)、または互いに交差する(Xフォーメーションなし)ことは無効です。さらに、列車セットであるため、列車の通過を許可しないフォーメーションは無効です。例には、90度の角度で交わる直線(常に垂直な直線の間に曲線が必要です)と90度の角度で交わる曲線が含まれます。 (曲線が流れる必要があります)。 また、タイプを無視して、できるだけ多くのピースを使用したいので、常により多くのビットを持つ回路を選択します。 。 入力 利用可能な大きな曲線、小さな曲線、直線の数に対応する、すべて0以上の3つの整数の配列、または同じ順序でプログラムに渡されるパラメーター。 出力 提供された要素の最大可能回路が構築されたときに残ったピースの数に対応する数。 テストデータ Minimal circuit using big curves Input: [4,0,0] Output: 0 Slightly more complicated circuit Input: [3,1,2] Output: 0 Incomplete circuit - can't join Input: [3,0,0] Output: 3 Incomplete circuit - can't join Input: [3,1,1] Output: …
27 code-golf 

30
Sチェーンを描く
バックグラウンド 私が若かったとき、私は奇妙な「S」の形を描く方法を教えられ、私は(クラスメートと一緒に)魅力的だと感じました。今日、私はそれを再発見し、それを描くための定型的なアプローチのために、興味深い挑戦につながる可能性があると考えました:P 「S」を描く Sは、次の簡単な手順に従って描画できます。 まず、次のように3つの垂直線を2行描画します | | | | | | 次に、左上の線を下の中央線に接続し、上の中央を右下の線に接続して、 | | | \ \ | | | 最後に、現在描画されている画像の上と下を描画して、最終的に次のようにします。 ^ / \ | | | \ \ | | | \ / v ご覧のとおり、これにより「S」字型になります。ただし、拡張すると(2行以上で描画)、非常に興味深いパターンが生成されます。あなたの仕事はこの興味深いパターンを再現することです。 仕事 整数whereを指定するとn >= 2、Sから出力nされる行を含むSを出力します。関数から出力が返され、標準メソッドで入力が取得される場合があります。画像全体と各行の両方の末尾/先頭の空白は問題ありません。ただし、「」が壊れないように、先頭の行スペースは一貫している必要があります。行のリストとして出力できます。 テストケース input output --- 2 ^ / \ | | …

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