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

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

8
除算除数の除算
nnn(k1,k2,...,km)(k1,k2,...,km)(k_1,k_2,...,k_m)ki⩾2ki⩾2k_i \geqslant 2k1⋅k2⋅...⋅km=nk1⋅k2⋅...⋅km=nk_1 \cdot k_2 \cdot ... \cdot k_m = nk1|k2 , k2|k3 , … , km−1|km.k1|k2 , k2|k3 , … , km−1|km.k_1 | k_2 \text{ , } k_2 | k_3 \text{ , } \ldots \text{ , }k_{m-1}|k_m.a|ba|ba|bbbbaaan>1n>1n>1kikik_i222n=1n=1n=1 そのような要因はないため、空のタプルを取得します。 これがどこから来るのか興味がある場合:この分解は、数論で不変因子分解として知られており、有限生成アーベル群の分類に使用されます。 チャレンジ 与えられたの出力の全てなのタプル与えられたためのようなものは何でも順番あなたが、正確に一度だけ。標準のシーケンス出力形式が許可されています。nnn(k1,k2,...,km)(k1,k2,...,km)(k_1,k_2,...,k_m)nnn 例 1: () (empty tuple) 2: (2) 3: …

17
それは私のXではなく、そのYはZです
この挑戦は、私が最近娘と楽しんでいるフィオナ・ワットとレイチェル・ウェルズによる幼い子供向けの本に触発されました。 それぞれの本で、マウス(図示されているが、テキストの一部ではない)は、同じタイプの5つのものの連続がそのものではないと文句を言う。次に、Thingの一部のコンポーネントが期待するプロパティを持っていないことを宣言することにより、これをバックアップします。 質問の6回目に、マウスはその物を見つけ、期待される特性があるので喜んでいます。 典型的な例のテキストは次のとおりです。 That's not my bunny, its tail is too fluffy. That's not my bunny, its paws are too rough. That's not my bunny, its tail is too woolly. That's not my bunny, its eyes are too shiny. That's not my bunny, its nose is too wrinkled. That's …
17 code-golf 

23
混乱を列挙する
ある正の整数与えられると、オブジェクトのすべての混乱を生成します。nnnnnn 詳細 混乱は不動点のない順列です。(この手段は、すべての混乱の数にすることはできません番目のエントリ)。iiiiii 出力は、数字の並べ替え(または)で構成される必要があります。(1,2,…,n)(1,2,…,n)(1,2,\ldots,n)(0,1,2,…,n−1)(0,1,2,…,n−1)(0,1,2,\ldots,n-1) あるいは、(またはそれぞれ)の混乱を常に印刷することもできますが、そうする必要があります。(n,n−1,…,1)(n,n−1,…,1)(n,n-1,\ldots,1)(n−1,n−2,…,1,0)(n−1,n−2,…,1,0)(n-1,n-2,\ldots,1,0) 出力は決定的である必要があります。つまり、入力として指定されたでプログラムが呼び出されるときは常に、出力は同じである必要があります(これには、混乱の順序が同じままである必要があります)。毎回有限の時間(確率1でこれで十分ではありません)。nnn と仮定できます。n⩾2n⩾2 n \geqslant 2 特定のnnnについては、すべての混乱を生成するか、インデックスとして機能する別の整数kkkを取得し、kkk番目の混乱を(選択した順序で)出力できます。 例 混乱の順序は、ここにリストされている順序と同じである必要はないことに注意してください。 n=2: (2,1) n=3: (2,3,1),(3,1,2) n=4: (2,1,4,3),(2,3,4,1),(2,4,1,3), (3,1,4,2),(3,4,1,2),(3,4,2,1), (4,1,2,3),(4,3,1,2),(4,3,2,1) OEIS A000166は、混乱の数をカウントします。

6
プライムスクエアを作ろう!
プライムスクエアとは何ですか? プライムスクエアは、4つのエッジすべてが異なる素数であるスクエアです。 しかし、どれですか? そして、それらをどのように構築しますか? 4x4プライムスクエアの例を次に示します 1009 0 0 3 0 1021 まず、左上隅から始めます。時計回りに作業しています。1009の数字を 持つ最小の素数を選択します。 4 次に4、で始まる数字を持つ最小の素数が必要9です。これは9001です 3番目(4桁)の素数は1、最後の桁(9001がで終わるため1) である必要があり、かつエッジとして以前に使用されていないこのプロパティを持つ最小の4桁の素数である必要があります。 この素数は1021です 第四の素数が持っている必要があり4、数字を開始すると1(なぜなら1009ので始まる1)と端と1(なぜなら1021ので始まる1) このプロパティを持つ最小の4桁の素数エッジは以前のように使用されていないです1031 あなたのタスク あなたは、整数与えられますnから3 to 100 の寸法になります。この番号をn x n四角 次に必要があり、正確に次のテストケースの形式で出力この広場 テストケース n=3 Output 101 3 0 113 n=5 Output 10007 0 0 0 0 9 0 10061 n=7 Output 1000003 0 0 …

30
Sixersシーケンスの最初の出現
Sixersシーケンスは、シーケンスに与えることができる名前ですA087409。Numberphileビデオでこのシーケンスについて学びました。次のように構成できます。 まず、基数10で書かれた6の倍数を取ります。 6, 12, 18, 24, 30, 36, ... 次に、数字を数字のストリームに連結します。 61218243036... 最後に、ストリームをペアに再グループ化し、それぞれを整数として解釈します。 61, 21, 82, 43, 3, ... 数をペアにグループ化するため、シーケンスの最大数は99になり、100未満のすべての非負整数がシーケンスで表されることがわかります。この課題は、Sixersシーケンス内の数値の最初のインスタンスのインデックスを見つけることです。 入力 範囲内の整数[0-99]。この範囲外の数値を考慮する必要はありません。そのような入力が与えられた場合、ソリューションは任意の動作をすることができます。 出力 Sixersシーケンスで入力番号が最初に現れるインデックス。これは、0インデックスまたは1インデックスの場合があります。答えの中でどれを使っているかを言ってください。 ルール 導入部に記載されているシーケンスを生成する手順は、例示のみを目的としており、結果が同じである限り、任意の方法を使用できます。 完全なプログラムまたは機能を送信できます。 入力および出力の賢明な方法はすべて許可されます。 標準の抜け穴は許可されていません。 オンラインでコードをテストするためのリンクをお勧めします! これはcode-golfなので、各言語の最短回答が勝ちです! テストケース 以下に、すべての入力と出力のリストをフォーマットで示しますinput, 0-indexed output, 1-indexed output。 0 241 242 1 21 22 2 16 17 3 4 5 4 96 …

13
星は星を作る
前書き アスタリスク文字(星)を使用*して、指定された次元でascii-art星を表示するという考え方です。次元は、星の上部の点の高さを線で指定する111以上の入力数です。ここでの星は、写真の観点から見たときのサイズが大きく見える6つの尖った星を意図しています。 すべての場合において、星のascii-art表現は、次の例に示すように重なり合う2つの三角形として表示されます。 パラメトリック 次の図とデータの表は、星の最初の7つのサイズの属性を説明しています。N = 1が異なる場合を除き、各パラメーターはNNNが増加するにつれて等差数列で増加します。N=1N=1N=1 例 入力が1の場合(縮退の場合)、プログラムの出力は次のようになります。 * ***** ***** * 入力2: * *** ********* ******* ********* *** * (3) * *** ***** *************** ************* *********** ************* *************** ***** *** * (5) * *** ***** ******* ********* *************************** ************************* *********************** ********************* ******************* ********************* *********************** ************************* *************************** ********* ******* …

19
新しい注文#4:世界
はじめに(無視してもよい) すべての正の数を規則正しい順序(1、2、3、...)で並べるのは少し退屈ですよね?そのため、すべての正数の順列(再編成)に関する一連の課題があります。これはこのシリーズの4番目の課題です(最初、2番目、3番目の課題へのリンク)。 この課題では、自然数の1つの順列ではなく、順列の全世界を調べます。 2000年、クラークキンバリングは、カナダ数学学会が発行する数学の科学ジャーナルであるCrux Mathematicorumの第 26 号で問題を提起しました。問題は: Sequence a=⎧⎩⎨⎪⎪a1=1an=⌊an−12⌋ if ⌊an−12⌋∉{0,a1,...,an−1}an=3an−1 otherwiseSequence a={a1=1an=⌊an−12⌋ if ⌊an−12⌋∉{0,a1,...,an−1}an=3an−1 otherwise\text{Sequence }a = \begin{cases} a_1 = 1\\ a_n = \lfloor \frac{a_{n-1}}{2} \rfloor\text{ if }\lfloor \frac{a_{n-1}}{2} \rfloor \notin \{0, a_1, ... , a_{n-1}\}\\ a_n = 3 a_{n-1}\text{ otherwise} \end{cases} すべての正の整数は、このシーケンスで1回だけ発生しますか? 2004年には、はMateusz Kwasnickiは同じジャーナルに肯定的証拠を提供し、2008年に、彼は公表され、より一般的な証拠(元の質問に比べて)よりフォーマルなと。彼は、パラメーターpppおよびqqqを使用してシーケンスを作成しました。 ⎧⎩⎨⎪⎪a1=1an=⌊an−1q⌋ if ⌊an−1q⌋∉{0,a1,...,an−1}an=pan−1 otherwise{a1=1an=⌊an−1q⌋ …

20
私はあなたのサブネットで、あなたのコードをゴルフしています
チャレンジ IPv4の所定のaddressドット付きクワッド表記で、とIPv4 subnetでCIDR表記、かどうかを判断addressしていますsubnet。にある場合は明確で一貫した値を出力し、にない場合は別個の明確で一貫した値を出力subnetしsubnetます。出力値は、必ずしも言語で真実/偽である必要はありません。 CIDRサブネット表記の簡単な入門書 IPv4ネットワークアドレスの長さは32ビットで、読みやすいように8ビットの4つのグループに分割されています。CIDRサブネット表記は、指定されたビット数のマスクであり、左端から始まります。たとえば、/24サブネットの場合、これはアドレスの右端の8ビットがそのサブネットで利用可能であることを意味します。したがって、最大255でで区切られ、同じサブネットマスクを持つ2つのアドレスは、同じサブネット内にあります。有効なCIDRには、すべてのホストビット(右側)が設定されていない(ゼロ)ことに注意してください。 xxxxxxxx xxxxxxxx xxxxxxxx 00000000 ^--- subnet mask ---^ ^-hosts-^ 別の例では、/32サブネットは、すべてのビットがサブネットマスクであることを指定します。つまり、本質的に、1つのホストのみが許可され/32ます。 xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx ^--- subnet mask ---^ 例: 出力として「Trueサブネット内」およびFalse「サブネット内ではない」に使用: 127.0.0.1 127.0.0.0/24 True 127.0.0.55 127.0.0.0/23 True 127.0.1.55 127.0.0.0/23 True 10.4.1.33 10.4.0.0/16 True 255.255.255.255 0.0.0.0/0 True 127.1.2.3 127.0.0.0/24 False 127.1.2.3 127.1.2.1/32 False 10.10.83.255 10.10.84.0/22 False 規則と説明 …

16
置換された剰余を持つ双子はいますか?
我々は定義RnRnR_nのユークリッド除算の剰余のリストとしてnnnによって222、333、555、および777。 整数所与n≥0n≥0n\ge0の整数が存在する場合、あなたが把握する必要が0<k<2100<k<21000ようにRn+kRn+kR_{n+k}の置換されR48R48R_{48}であるk=210k=210k=210(につながるR258=(0,0,3,6)R258=(0,0,3,6)R_{258}=(0,0,3,6)も同様) ルール kkkが存在する場合は真実の値を出力し、それ以外の場合は偽の値を出力するか、選択した2つの異なる一貫した値を出力します。 これはcode-golfです。 ヒント 本当にkkkを計算する必要がありますか?まあ、多分。またはそうでないかもしれません。 テストケース いくつかの値nnnれるkkk存在します。 3, 4, 5, 8, 30, 100, 200, 2019 いくつかの値nnnれるkkk存在しません。 0, 1, 2, 13, 19, 48, 210, 1999

4
何がありますか?
私たちの最愛の天才からインスピレーションを受けて、そしてそれを記念して、 RIP 彼はdfnsを発明し、実装しました。彼の大作と挑戦の主題です。 興味のある方:最新の完全なdfnsドキュメントとJohnのビデオ。 仕事 ASCIIソースコードを指定して、次の4つのカテゴリのいずれに属するかを答えます。 ダイアディックドップ モナドドップ Dfn その他 4つの一貫した値を返すことができますが、明確でない場合はマッピングを明記してください。 詳細 ソースコードは常に左中括弧{で始まり、右中括弧で終わると仮定でき}ます。 再帰的にネストされたブレースが発生する可能性がありますが(例{{{}}})、カテゴリ1〜3ではブレースのネストの深さが1未満になること{}{}はないため(「その他」)、すべてのブレースのバランスが取れます({{}「その他」)。 行の次のコンテキストの文字は無視されます。 #(コメント)の右側:significant#ignored 単一引用符で囲まれた'... '(つまり、文字列で): significant'ignored'significant(これが適用さ#すぎ。'#'significant) 対になっていない引用の右側'(左からの引用のペア):significant'ignored 中括弧レベル1(つまり、ネストされた中括弧を除く): ダイアディックドップスには途切れないフレーズが含まれています ww モナドドップスにはが含まれていませんがww、含まれていますaa DFNS含んどちらwwもaa テストケース ダイアディックドップス {ww} { www } { ''ww' } {aa ww} {'#''#'ww?aa} モナドドップス {aa} {aaaa} {aa{ww}'ww'} {w#w' aa' } {aaw*w} {w'\'aa\''} Dfns {} {a a} …

10
2次元バブルソート
並べ替えは2次元配列には意味がありません...またはそれを行いますか? あなたのタスクは、入力グリッドを取得し、グリッド内のすべての値がすべての行と列に沿って左から右、上から下に減少しないまで、バブルソートのようなアルゴリズムを適用することです。 アルゴリズムは次のように機能します。 各パスは、行ごとに上から下に進み、各セルをその右および下の隣接セルと比較/交換します。 セルがその右隣と下隣のいずれか1つよりも大きい場合、それより大きいセルと交換します セルが右隣と下隣の両方よりも大きい場合、小さい隣と交換します セルが右隣と下隣の両方(同じ値)よりも大きい場合は、下隣と交換します。 セルがその右隣および下隣のいずれよりも大きくない場合、何もしない パス全体でスワップが行われないまでこれを続けます。これは、すべての行と列が左から右へ、上から下へ順番に並んでいるときです。 例 4 2 1 3 3 5 7 2 1 パスの最初の行は4と2を交換し、次に4を1と交換します。 2 1 4 3 3 5 7 2 1 中間の3を取得すると、以下の2と交換されます 2 1 4 3 2 5 7 3 1 次に、5は下の1と交換されます 2 1 4 3 2 1 7 3 5 最初のパスの最後の行は、7を右端まで移動します …
17 code-golf  grid 

26
合計スロットの計算
順番に実行する必要があるジョブのリストが与えられ、それぞれが実行するスロットを使用して、ジョブを実行した後、次の2つのスロットで同じジョブを実行できない場合(スロットの冷却) )?ただし、このクーリングオフスロットには別のジョブを割り当てることができます。 例えば、 [9,10,9,8] => output: 5 ジョブはとして割り当てられるため[9 10 _ 9 8]です。 1.まず、9には2つの冷却スポットが必要です_ _。だから私たちは始め9 _ _ます。 2.次のジョブ10は前のジョブ9とは異なるため、_ _の1つを割り当てることができます。その後、我々は持ってい9 10 _ます。 3.第三に、最初のジョブ9は同じジョブであり、冷却時間を必要とするため、9は現在割り当てられません。9 10 _ 9。 4.最後に、8は以前の2つのジョブと同じではないため、9の直後に割り当てることができ、これは最後のジョブであるため、冷却時間を必要としません。最終的なリストは9 10 _ 9 85で、予想される出力はスポット数(またはスロット数)です。 テストケース: [1,2,3,4,5,6,7,8,9,10] => output : 10 ([1 2 3 4 5 6 7 8 9 10]) [1,1,1] => output: 7 ([1 …

1
正方形グリッドを等しい面積の部分に分割する
この課題は、次のパズルに基づいています。セルにマークが付いnたnグリッドごとに与えられnます。あなたの仕事はn、各部分nが正確に1つのマークされたセルを含む正確なセルで構成される部分にグリッドを分割することです。 例 左側にパズルを、右側にその(ユニークな)ソリューションを示します。 チャレンジ n妥当な形式のゼロインデックス座標のセットが提供されます。 [(0,0), (0,3), (1,0), (1,1), (2,2)] そして、あなたの仕事は、有効なパーティションを返すプログラムを作成することです(これも妥当な形式で)。 [ [(0,0), (0,1), (0,2), (1,2), (1,3)], [(0,3), (0,4), (1,4), (2,4), (3,4)], [(1,0), (2,0), (3,0), (4,0), (4,1)], [(1,1), (2,1), (3,1), (3,2), (4,2)], [(2,2), (2,3), (3,3), (4,3), (4,4)] ] パズルに解決策がない場合、プログラムはエラーをスローするか空の解決策を返すことでそれを示す必要があります。 入出力の例 [(0,0)] => [[(0,0)]] [(0,0), (1,1)] => [ [(0,0), (1,0)], [(0,1), …

14
重複した値を持つすべての(反)対角線を見つける
チャレンジ: 行列入力が与えられた場合、重複する数値で対角線と対角線の量を決定します。 したがって、次のようなマトリックスがある場合: [[aa,ab,ac,ad,ae,af], [ba,bb,bc,bd,be,bf], [ca,cb,cc,cd,ce,cf], [da,db,dc,dd,de,df]] すべての対角線と反対角線は次のようになります。 [[aa],[ab,ba],[ac,bb,ca],[ad,bc,cb,da],[ae,bd,cc,db],[af,be,cd,dc],[bf,ce,dd],[cf,de],[df], [af],[ae,bf],[ad,be,cf],[ac,bd,ce,df],[ab,bc,cd,de],[aa,bb,cc,dd],[ba,cb,dc],[ca,db],[da]] 例: [[1,2,1,2,1,2], [1,2,3,4,5,6], [6,5,4,3,2,1], [2,1,2,1,2,1]] すべての対角線と反対角線は次のようになります。 [[1],[2,1],[1,2,6],[2,3,5,2],[1,4,4,1],[2,5,3,2],[6,2,1],[1,2],[1], [2],[1,6],[2,5,1],[1,4,2,1],[2,3,3,2],[1,2,4,1],[1,5,2],[6,1],[2]] 一意の数字のみを含むすべての対角線と対角線を削除します。 [[2,3,5,2],[1,4,4,1],[2,5,3,2],[1,4,2,1],[2,3,3,2],[1,2,4,1]] したがって、出力は、重複した数値を含む対角線と対角線の量です。 6 チャレンジルール: 入力行列が空の場合、1つの数値のみを含む場合、または行列全体で一意の数値のみを含む場合、出力は常に0です。 入力には、正の数字のみが含まれることが保証されます[1,9](完全に空でない限り)。 マトリックスは常に長方形です(つまり、すべての行は同じ長さです)。 I / Oは柔軟です。入力は、整数のリストのリスト、整数の2D配列、または文字列などのマトリックスオブジェクトなどとして取得できます。また、追加の入力としてマトリックスの1つまたは両方の次元を使用することもできます。選択した言語でバイトを節約する場合。 一般的なルール: これはcode-golfであるため、バイト単位の最短回答が優先されます。 コードゴルフ言語では、非コードゴルフ言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 デフォルトのI / Oルールを使用した回答には標準ルールが適用されるため、STDIN / STDOUT、関数/メソッド、適切なパラメーターおよび戻り値型、完全なプログラムを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテスト(TIOなど)へのリンクを追加してください。 また、回答の説明を追加することを強くお勧めします。 テストケース: Input: Output: [[1,2,1,2,1,2], 6 [1,2,3,4,5,6], [6,5,4,3,2,1], [2,1,2,1,2,1]] [[]] 0 …

21
NATO Phonetic Alphabetを使用して、文字列を取り込み、その単語を綴る関数/メソッドを記述します。オプションのタイトルケース
NATO Phonetic Alphabetを使用して、文字列を取り込み、その単語を綴るプログラムを作成します。 マッピングは次のとおりです。 'A' -> 'Alfa' 'B' -> 'Bravo' 'C' -> 'Charlie' 'D' -> 'Delta' 'E' -> 'Echo' 'F' -> 'Foxtrot' 'G' -> 'Golf' 'H' -> 'Hotel' 'I' -> 'India' 'J' -> 'Juliett' 'K' -> 'Kilo' 'L' -> 'Lima' 'M' -> 'Mike' 'N' -> 'November' 'O' -> 'Oscar' 'P' …

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