タグ付けされた質問 「combinatorics」

組み合わせ論を伴う課題に。

16
Mod 2多項係数
quintopiaは、ここで多項係数を計算するための課題を投稿しました(ここのテキストの一部はそこからコピーされています)。多項係数mod 2を計算する楽しいアルゴリズムがあります。 数のリストk 1、k 2、...、k mが与えられると、多項係数の剰余を出力します。 それぞれについて、以下のアルゴリズムが効率的にこれを行うMOD 2を減少K iがバイナリ拡張計算し、kはiが発見であること、IJ各ようにijが 1または0であり、そして r≠sに対してa rj = a sj = 1のようなjがある場合、関連するmod 2多項係数は0です。それ以外の場合、mod 2多項係数は1です。 仕事 m個の数値、k 1、k 2、...、k mを取り、対応する多項係数を出力または返すプログラムまたは関数を作成します。プログラムでは、必要に応じて、オプションでmを追加の引数として使用できます。 これらの数値は、コード化プロセスではなくコードによって多項係数の実際の計算が実行される限り、任意の形式で入力できます。たとえば、リストにグループ化するか、単項でエンコードするなどです。 多項係数が奇数の場合、出力は任意の真理値、多項係数が偶数の場合は偽値となります。 多項係数を計算するために設計された組み込み関数は使用できません。 標準の抜け穴が適用されます。 得点 これはコードゴルフです。バイト単位の最短ソリューションが勝ちです。 例: 7、16、および1000の多項係数を見つけるために、それぞれをバイナリ展開します。 1つ以上の列を持つ列はないので、多項係数は奇数であり、したがって、何らかの真実を出力する必要があります。 7、16、および76の多項係数を見つけるために、それぞれをバイナリ展開します。 76と7の2進展開には4があるため、多項係数は偶数であり、偽値を出力します。 テストケース: Input: [2, 0, 1] Output: Truthy Input: [5,4,3,2,1] Output: Falsey Input: [1,2,4,8,16] Output: Truthy …

2
サブセットファクターの検索
正の整数の有限セットがあると想像してみましょう。このセットは、セット内に存在する各整数がスキャントロンまたはパンチカードのように塗りつぶされた点の線として表すことができます。たとえば、セット{1,3,4,6}は次のように表すことができます。 *.**.* *はセットのメンバーを表し、セットのメンバーで.はない整数を表します。 これらのセットには「要因」があります。yがxのコピーから構築できる場合、ゆるくxはyの因子です。より厳密には、因子の定義は次のとおりです。 xがyの因数であるのは、yが互いに素な集合の集合であり、そのすべてがオフセット付きのxである場合のみです。 ファクターを呼び出すの*.*は、2つのコピーのエンドツーエンドのコピーで非常に明確に構成されているためです。*.**.**.* *.**.* ------ *.*... ...*.* 要因はエンドツーエンドである必要はありませんが、それ*.*は要因でもあります*.*.*.* *.*.*.* ------- *.*.... ....*.* 要因は重複することもあります。これは*.*、次の要因でもあります**** **** ---- *.*. .*.* ただし、1つの数値で1つの数値を複数回カバーすることはできません。たとえば、の要因で*.*はありません*.*.*。 より複雑な例を次に示します。 *..*.**..***.*.* これには*..*.*要因があります。以下のように、3つのインスタンスを並べたことがわかります*..*.*。 *..*.**..***.*.* ---------------- *..*.*.......... ......*..*.*.... ..........*..*.* 仕事 合理的な表現によるセットが与えられると、入力の要因であるすべてのセットが出力されます。 任意の値でインデックスを作成できます(つまり、入力に存在できる最小の数値を選択できます)。また、入力セットには常にその最小値が含まれると想定することもできます。 これはコードゴルフの質問ですので、できるだけ少ないバイトでこれを行うようにしてください。 テストケース これらのテストケースは手作業で行われましたが、大きなテストケースでは1つまたは2つの間違いがある可能性があります * -> * *.*.* -> *, *.*.* *.*.*.* -> *, *.*, *...*, *.*.*.* ****** -> …

9
奇数オッズを見つける
妥当な入力メソッドによって正の整数の順不同のコレクションが与えられた場合、奇数個の奇数要素を持つ(つまり、合計が奇数である)すべてのサブコレクションを返します。 これはコードゴルフなので、プログラムのバイトカウントを最小限に抑えることを目指してください。 一部の言語には順序付きコレクション(リスト、配列、ベクトルなど)のみがあるか、重複を許可する順序なしコレクションがないため、言語コレクションに関係なく順序付きコレクションを使用できますが、重複コレクションは出力しないでください。異なる順序([2,3]およびなど[3,2])。適切な順序で出力できます。 テストケース [2,3,7,2] -> [[3],[7],[2,3],[2,7],[2,2,3],[2,2,7]] [2,4,6,8] -> [] [4,9] -> [[9],[4,9]]

12
おおよその相関を見つける
S長さのバイナリ文字列を考えnます。インデックス作成1、我々は計算することができハミング距離の間S[1..i+1]とS[n-i..n]すべてのためにiから順に0しますn-1。等しい長さの2つのストリング間のハミング距離は、対応するシンボルが異なる位置の数です。例えば、 S = 01010 与える [0, 2, 0, 4, 0]. これは0マッチ0、01ハミング距離が2に10、010マッチ010、0101 4にハミング距離があり1010 、最終的に01010自分自身にマッチします。 ただし、ハミング距離が最大1である出力のみに関心があります。したがって、このタスクではY、ハミング距離が最大で1であるかどうかを報告し、N場合そうでないます。したがって、上記の例では次のようになります [Y, N, Y, N, Y] すべてを反復するときに取得されるsとsのf(n)個別の配列の数になるように定義するYN2^nS長さの異なる可能性のあるビット文字列をn。 仕事 n開始時の増加1場合、コードを出力する必要がありますf(n)。 回答例 のn = 1..24正解は次のとおりです。 1, 1, 2, 4, 6, 8, 14, 18, 27, 36, 52, 65, 93, 113, 150, 188, 241, 279, 377, 427, 540, 632, 768, 870 …

14
ウォルステンホルムの定理を検証する
定義 ウォルステンホルムの定理は次のように述べています。 ここで aand bは正の整数でpあり素数であり、大きな括弧は二項係数です。 仕事 それを確認するには、3つの入力を与えられます:a、b、p、どこaおよびb正の整数であり、p素数です。 計算: ここで aand bは正の整数でpあり素数であり、かっこは二項係数です。 スペック 以来: ここで、かっこは二項係数です。 あなたはそれを仮定することができます 2b <= a テストケース a b p output 6 2 5 240360 3 1 13 3697053 7 3 13 37403621741662802118325

1
12コイン問題
バックグラウンド 12コインの問題は、就職の面接で一般的に使用される古典的なバランスパズルです。このパズルは1945年に初めて登場し、祖父が母と結婚するように頼んだときに父に提示されました!パズルには12個のコインがあり、そのうちの1つは他のものよりも重いか軽い(どちらかはわかりません)。問題は、バランススケールを3回使用して一意のコインを決定することです。いくつかのバリエーションでは、コインが重いか軽いかを識別することも必要です。 ここでのタスクには、最悪の場合に可能な限り少ない計量を使用して、n個のコインを含む一般的な問題を解決することが含まれます。コインが重いか軽いかを識別する必要はなく、どちらかだけです。さらに、指定されたセット以外の追加のコインにはアクセスできません(奇妙なことに、違いが生じます)。 最大で(3 ^ k-1)/ 2個のコインに対してk個の計量で十分であることがわかります(したがって、このバリエーションでは4個の計量で実際に13個のコインを処理できます)。さらに(そして驚くべきことに)、将来の計量が過去の結果に依存するのではなく、計量の完全なセットを事前に選択することが可能です(ただし、ここでは必要ありません)。2つの可能なソリューションの説明については、このペーパーとこのQuoraの回答を参照してください。 仕事 STDIN、コマンドライン引数、または関数引数を介して整数nを入力として関数またはプログラムを作成します。これにより、最悪の場合に可能な限り少ない計量を使用してnコインの問題を解決します。プログラムは: 計量器の1,2,3-4,5,6両側にあるコインのリストを示す形式で計量を標準出力に印刷します。計量されていない硬貨については言及しないでください。コインには暗黙的に1からnまでの番号が付けられ、番号順に印刷する必要はありません(2,1-3,4と同じ1,2-3,4です)。 各プログラムを秤量した後であるべき、STDINを介して入力を待つ必要があり<、=または>、スケールの左側は、ライター同じ、または右側よりも重いかどうかを示します。 最後の計量結果の後、プログラムは一意のコインの番号を印刷または返す必要があります。 プログラムは、ユーザーからの一貫性のない結果入力を処理する必要はありません。 プログラムは3未満のnを処理する必要はありません。 出力例 >> 3 1-2 >> = 1-3 >> < 3 # using Quora algorithm >> 13 1,2,3,4-5,6,7,8 >> < 1,2,5-3,4,6 >> > 3-4 >> < 3 # using paper algorithm >> 13 1,2,3,4-5,6,7,8 >> < 2,6,7,9-3,8,10,11 …

10
辞書順でソートされた順序で、先頭と末尾の順列のセットを生成します
次の手順で生成できる番号の順列となるように、長さの前付加シーケンスを定義します。n1, 2, ..., n 番号から始め1ます。 番号ごと2にn列(いずれかの最初や最後に、この数場所、先頭に追加または追加して、シーケンスの名前の由来)。 たとえば、これは長さ4のprepend-appendシーケンスを生成する有効な方法です。 1 21 [beginning] 213 [end] 2134 [end] あなたの仕事は、入力としてnから3を取得するプログラムまたは関数を構築し、辞書式順序30で長さのすべての追加/追加シーケンスを印刷または返すnことです(リストではなく文字列を出力する場合、9を超える数が表されます文字として、文字a-u列の長さを保持します)。たとえば、これは次の順序ですn = 4。 1234 [RRR] 2134 [LRR] 3124 [RLR] 3214 [LLR] 4123 [RRL] 4213 [LRL] 4312 [RLL] 4321 [LLL] 一般に、lengthの2 n-1の前置/後置置換がありますn。 コード内の言語で組み込みの並べ替え関数を使用することはできません。任意の言語でこれを行う最短のプログラムが勝ちます。

1
トラックを荷造りするのに必要なロボット・ローディ
バンドのローディーとして、トラックを梱包する必要があります。プログラムは、最小の高さに収まるようにパッケージを配置します。 ひどく詰まったトラック ルール パッケージは90度の倍数で回転できます。パッケージは接触する場合がありますが、重なってはなりません。 出力は(ファイルまたはstdoutへの)再パックされたイメージです。プログラムは、任意の入力または出力ラスター画像形式を使用できます。 プログラムは、最大4000x4000ピクセルの画像でさまざまな形状のパッケージをいくつでも受け入れなければなりません。このテストイメージ用にハードコーディングしないでください。提出物がこの特定の画像に合わせて調整されていると思われる場合は、新しいテスト画像に置き換える権利を留保します。 スコア スコアは、配置を含む四角形の最小の高さです(幅は入力四角形の幅です)。同点の場合、最も早いエントリーが勝ちです。 通常の標準的な抜け穴は禁止されています。

3
長さnのメビウスの梯子の制限された森林の数を数える
OEISシーケンスA020872は、メビウスのはしご M nの制限された森林の数をカウントします。 チャレンジ 課題は、入力として整数を受け取り、メビウスのはしごM nにある制限された森林の数をn > 1返すプログラムを書くことです。これはcode-golfなので、最短のコードが優先されます。(不純な動機は、おそらくこのシーケンスの長さを少し延長することです。)A020872(n) 定義 制限された森は、各部分が(無向)のいずれかであるようなグラフのパーティションである経路又は単離された頂点。 メビウスのラダー M nはすべて反対の頂点の間に引かれた対角線と2N角形と考えることができるグラフです。 例 M 2にある34の制限された森林(対角線が描かれた正方形)は次のとおりです。最初のグラフは4つの分離された頂点に分割され、2番目のグラフは1つのパスと2つの分離された頂点に分割されていることに注意してください。

6
長方形内のユニークなレンガのタイル
私はStackoverflowを閲覧していて、MxN長方形のタイリングに関するこの質問を見て、ゴルフに最適だと思いました。ここにタスクがあります。 次元MとNが与えられた場合、MxNの長方形(Nは列ではなく行の数です。実際には重要ではありません)がこれらの制約の下でタイル化できるユニークな方法を出力するプログラムを書きます。 すべてのタイルは2x1または3x1です すべてのタイルは行内にとどまります(つまり、すべて水平です) 隣接する2行ごとに、2つの端を除き、タイルを配置しないでください。 MとNは少なくとも1であることが保証されています たとえば、8x3マトリックスの有効なタイリングは次のようになります 2 3 3 | | | v v v _______________ |___|_____|_____| |_____|_____|___| |___|_____|_____| ただし、行は整列するため、次は無効になります。 2 3 3 | | | v v v _______________ |___|_____|_____| |_____|___|_____| |_____|_____|___| テストケース: 8x3:4 3x1:1 1x1:0 9x4:10 ゴルフをコーディングするので、最短回答が勝ちます。

15
論理ゲートを手動で
基本的な論理ゲートをシミュレートするプログラムを作成します。 入力:スペースなどで区切られた、2つの1桁の2進数が続く、すべて大文字の単語OR 1 0。門OR、AND、NOR、NAND、XOR、およびXNOR必要とされています。 出力:入力された論理ゲートの出力には、1または0の2つの数値が与えられます。 例: AND 1 0なります0 XOR 0 1なり1 OR 1 1ます1 NAND 1 1なります0 これはcodegolfなので、最短のコードが優先されます。
13 code-golf  logic-gates  hashing  code-golf  code-golf  number  array-manipulation  integer  code-golf  string  unicode  text-processing  cops-and-robbers  boggle  cops-and-robbers  boggle  code-golf  ascii-art  code-golf  word-puzzle  king-of-the-hill  python  code-golf  sequence  kolmogorov-complexity  code-golf  source-layout  code-golf  string  kolmogorov-complexity  math  number  code-golf  date  code-golf  combinatorics  recursion  game  king-of-the-hill  javascript  code-golf  array-manipulation  code-golf  radiation-hardening  self-referential  code-golf  integer  code-golf  number  code-golf  set-theory  code-golf  sequence  code-golf  string  sorting  natural-language  code-golf  decision-problem  number-theory  primes  code-golf  code-golf  ascii-art  code-challenge  array-manipulation  sorting  rubiks-cube  regular-expression  code-golf  counting  file-system  recursion  code-golf  string  kolmogorov-complexity  color  code-golf  game  code-challenge  permutations  encode  restricted-time  decode  code-golf  math  decision-problem  matrix  integer  palindrome  code-golf  matrix  statistics  king-of-the-hill  king-of-the-hill  python  card-games  code-golf  string  natural-language  code-golf  sequence  number-theory 

12
文字列と数字を楽しもう
プログラミングパズルは次のとおりです。 たとえば、文字列と対応する番号のペアのリストが与えられた場合、[[A,37],[B,27],[C,21],[D,11],[E,10],[F,9],[G,3],[H,2]]次の方法で文字列のみを持つ別のリストを出力します。 文字列の総数は、入力データの対応する数と正確に等しくなければなりません。 シーケンス内で文字列が隣接して繰り返されてはならず、すべての文字列が出力リストに表示される必要があります。 次の文字列の選択は、2つのルールを超えない限り、ランダムに実行する必要があります。各ソリューションには、選択されるゼロ以外の確率が必要です。 組み合わせが不可能な場合、出力はになります0。 入力リストは任意の順序(ソート済みまたは未ソート)で指定でき、リスト内のストリングの長さは任意です。 上記のサンプル入力1のサンプル出力 [A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,G,H,G,H,G] 入力サンプル2: [[A,6],[B,1],[C,1]] 2番目の入力の出力: 0 ルールに基づいて可能なリストがないため サンプル入力3: [[AC,3],[BD,2]] 有効な出力: [AC,BD,AC,BD,AC] 無効な出力: [AC,BD,AC,AC,BD] さらに説明が必要な場合は、コメントで私に伝えることをheしないでください、私はすぐにそれに応じて行動します。 これはcode-golfなので、各言語のバイト単位の最短コードが勝ちです!

30
プライムパワーからプライムを回復する
定義:素数はp nの形式で表現できる自然数です。pは素数で、nは自然数です。 タスク:プライムパワーp n > 1の場合、プライムpを返します。 テストケース: input output 9 3 16 2 343 7 2687 2687 59049 3 得点:これはcode-golfです。バイト単位の最短回答が優先されます。
13 code-golf  arithmetic  primes  king-of-the-hill  python  board-game  code-golf  number  subsequence  code-golf  ascii-art  code-golf  array-manipulation  decision-problem  grid  fastest-algorithm  logic-gates  logic  code-golf  cards  code-golf  rational-numbers  code-golf  math  number  sequence  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  code-golf  number  sequence  decision-problem  code-golf  ascii-art  number  code-challenge  sequence  arithmetic  sorting  code-golf  date  fastest-algorithm  code-golf  string  number  random  combinatorics  code-golf  combinatorics  code-golf  ascii-art  base-conversion  code-golf  array-manipulation  code-golf  string  code-golf  string  number  arithmetic  code-golf  kolmogorov-complexity  code-golf  string  array-manipulation  json  code-golf  puzzle-solver  code-golf  binary  graph-theory  code-golf  arithmetic  haskell  code-golf  string  cipher  code-golf  code-golf  string  parsing  alphabet  code-golf  string  code-golf  ascii-art  code-golf  string  number  code-golf  string  balanced-string 

5
境界線がn未満の整数三角形
定義 「整数三角形」は、整数座標を持つものです。たとえば、次の三角形は整数三角形です。 (0, 0), (0, 1), (1, 2) with perimeter 1 + sqrt(2) + sqrt(5) ≈ 4.650. 仕事 この課題の目標は、境界がn未満のすべての整数三角形(合同まで)をカウントすることです。 入出力 引数は整数として与えられ、出力は厳密に引数よりも小さい周囲を持つ三角形の数でなければなりません。 例 境界線による最小の整数三角形は、 (0, 0), (0, 1), (1, 0) which has perimeter 2 + sqrt(2) ≈ 3.414 次に小さいものは次のとおりです。 (0, 0), (0, 1), (1, 2) with perimeter 1 + sqrt(2) + …

10
フィボナッチ軌道を数える
フィボナッチ数列をf k(n)=(f k(n-1)+ f k(n-2))%kとして定義する場合、整数k(%はモジュロ演算子)に対して、シーケンス(f k(n-1)、f k(n-2))にはk 2個の異なる値しかないため、必然的に周期的です。ただし、このサイクルには通常、可能なすべての値のペアが含まれているわけではないため、2つの開始値f k(0)およびf k(1)に応じて、異なるサイクルが得られる場合があります。たとえば、k = 2の場合、最初の2つの値に応じて、次の4つの可能性があります。 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0, 1, 1, 0, 1, 1, 0, 1, 1, ... 1, 0, 1, 1, 0, 1, 1, 0, 1, ... 1, 1, 0, 1, 1, 0, 1, 1, …

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