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

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

6
N次元ベクトルの列挙
正の整数k > 1と非負の整数iを指定すると、非負の整数の- kタプル(または- k次元ベクトル)を生成します。すべてのためにk、ℕのにℕからマップkは、全単射でなければなりません。つまり、すべての入力iは異なるタプルを生成する必要があり、可能なタプルはすべてinputによって生成される必要がありますi。 プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。 出力には、便利で明確なフラットリスト形式を使用できます。 あなたのソリューションは、上の人工的な制限を課すべきではないkとiはできますが、彼らはあなたの言語のネイティブ整数のサイズに収まることを仮定してもよいです。少なくとも、最大の値をサポートする必要があり255ますが、ネイティブの整数サイズでさえそれより小さくなります。 いずれかのために1 < k < 32、(あなたの答えはサポートされていない場合は、もちろん、あなたのコードは、ほんの数秒で結果を生成する必要があり、以前のルールによる大規模な、制限が相応に調整されていること)。これは何の問題もないはずです。それは、そのようなことは2まで働くことは、この課題を解決することが可能です128数秒ではなく、制限は実際の反復を避け回答にありへの結果を見つけること。i < 231i0i 選択したマッピングの説明と、それが全単射である理由の正当性を回答に含めてください(これは正式な証明である必要はありません)。 これはコードゴルフで、最短の回答(バイト単位)が勝ちです。 関連する課題 非負のものから整数のペアを生成します すべての有理数のリストを出力します

7
合計のないパーティションを見つける
エグゼクティブサマリー 入力を考えるとk、整数のパーティションを見つける1にnにk最大のための和自由サブセットn10分以内にすることができます。 背景:シュール数 自己合計に共通する要素がない場合、セットAは合計なしですA + A = { x + y | x, y in A}。 すべての正の整数の場合はk整数の最大があるS(k)セットがあるよう{1, 2, ..., S(k)}に分割することができますk合計フリーサブセット。この番号は、k 番目の シューア番号(OEIS A045652)と呼ばれます。 たとえば、S(2) = 4。{1, 2, 3, 4}としてパーティション化できます。{1, 4}, {2, 3}これは、2つの合計のないサブセットへの一意のパーティションですが、5どちらの部分にもa を追加することはできません。 チャレンジ 以下を実行する決定論的プログラムを作成します。 k入力として正の整数を取る 現在のUnixタイムスタンプをstdoutに書き込みます パーティションのシーケンスを出力1するnにk増大させるための和自由サブセットn現在のUnixタイムスタンプを持つ各シーケンス以下、。 勝者は、n入力が与えられたときに私のコンピューターで10分以内に最大のパーティションを印刷するプログラム5です。n3回の実行で平均された最大のパーティションを見つけるための最も早い時間で関係が壊れます。そのため、出力にタイムスタンプを含める必要があります。 重要な詳細: 私はUbuntu Preciseを持っているので、あなたの言語がサポートされていない場合、スコアをつけることができません。 Intel Core2 Quad CPUを持っているので、マルチスレッドを使用したい場合、4つ以上のスレッドを使用しても意味がありません。 特定のコンパイラフラグまたは実装を使用する場合は、回答に明確に文書化してください。 入力を処理するためにコードを特殊なケースにしないでください5。 見つかったすべての改善を出力する必要はありません。たとえば、入力の2場合は、パーティションのみを出力できますn = …

3
文字列内のパターンを検索
この挑戦では、あなたの仕事は、与えられた構造を持つ部分文字列を見つけることです。 入力 入力は、空ではない2つの英数字文字列、パターン p、およびテキスト tです。の考え方は、の各文字がp連続して空でない部分文字列を表し、その部分文字列tが隣り合って出現し、pそれらの連結を表すことです。同一の文字は同一の部分文字列に対応します。たとえば、パターンaaは空でない正方形(短い文字列をそれ自体に連結することによって取得される文字列)を表します。したがって、パターンaaは部分文字列byebyeとa一致し、それぞれ一致しbyeます。 出力 テキストtにp一致する部分文字列が含まれている場合、出力はその部分文字列になり、の文字に:対応する文字列の間にコロンが挿入されますp。例えば、我々が持っている場合t = byebyenowとp = aa、その後、bye:bye許容出力されます。一致する部分文字列にはいくつかの選択肢がありますが、そのうちの1つだけを出力します。 t一致する部分文字列が含まれていない場合、出力は悲しい顔になり:(ます。 規則と説明 の異なる文字はp同一の部分文字列に対応できるためp = aba、文字列と一致できますAAA。文字は空でない文字列に対応する必要があることに注意してください。特に、pがより長い場合t、出力はでなければなりません:(。 完全なプログラムまたは関数を記述できます。また、2つの入力の順序を変更することもできます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 テストケース 形式で与えられますpattern text -> output。他の受け入れ可能な出力が存在する可能性があることに注意してください。 a Not -> N aa Not -> :( abcd Not -> :( aaa rerere -> re:re:re xx ABAAAB -> A:A MMM ABABBAABBAABBA -> ABBA:ABBA:ABBA x33x 10100110011001 -> 10:1001:1001:10 …
17 code-golf  string  code-golf  ascii-art  geometry  code-golf  ascii-art  code-golf  sequence  stack  code-challenge  number  sequence  answer-chaining  code-golf  code-challenge  math  combinatorics  binary-matrix  code-golf  number  code-golf  cryptography  bitwise  code-golf  sudoku  code-golf  brainfuck  metagolf  code-golf  probability-theory  number-theory  primes  fewest-operations  factoring  golf-cpu  code-golf  restricted-source  code-golf  graphical-output  sequence  binary  code-golf  tips  c#  code-golf  geometry  code-golf  graphical-output  fractal  code-golf  number  sequence  code-golf  number  array-manipulation  popularity-contest  game  board-game  code-golf  puzzle-solver  grid  code-golf  ascii-art  geometry  grid  tiling  code-golf  ascii-art  whitespace  balanced-string  code-golf  card-games  king-of-the-hill  javascript  code-golf  whitespace  balanced-string  code-golf  code-golf  math  abstract-algebra  code-golf  java  code-golf  interpreter  stack  code-golf  base-conversion  code-golf  tips  code-golf  ascii-art  geometry  brainfuck  metagolf  code-challenge  math  quine  code-generation  code-golf  number  kolmogorov-complexity  arithmetic  expression-building  code-golf  string  code-golf  quine  popularity-contest  code-golf  base-conversion  code-challenge  image-processing  code-golf  conversion  coding-theory 

7
番号のソートされた字句分割
課題は実に簡単です。数字が与えられたら、その数字を小さな数字の配列に分割し、結果の数字が減少しないようにします。キャッチは、配列の長さが最大になるように分割する必要があるということです。 混乱した? STDIN(または最も近い代替)、コマンドライン引数、または便利で明白な入力形式の関数引数を介して正の整数が与えられます。 数値の10進数を連続した互いに素なグループに分割する必要があります。 これらの数字グループで表される数値の配列は、グループを再配置せずに(通常の減少しない順序で)ソートする必要があります。 そのようなパーティションが複数存在する場合は、入力をできるだけ多くの数にパーティション分割する必要があります。同数の場合、そのような結果を1つ返します。 配列をSTDOUT(または最も近い代替)に出力するか、関数の戻り値として出力できます。STDOUT(または最も近い代替)の場合、配列は便利で明確なリスト形式で印刷する必要があります。 分割番号の先頭にゼロを付けないでください。そのため、たとえば1002003、[1, 002, 003]またはとして印刷することはできず[1, 2, 3]、それに対する唯一の有効な答えは[100, 2003]です。 テストケース: 123456 -> [1, 2, 3, 4, 5, 6] 345823 -> [3, 4, 5, 8, 23] 12345678901234567890 -> [1, 2, 3, 4, 5, 6, 7, 8, 90, 123, 456, 7890] 102 -> [102] 302 -> [302] 324142 …

8
長い単語の連鎖を構築する
この課題は、次の単語の最初の3文字が最後の単語の最後の3文字と一致する英語の単語の最長チェーンを見つけることです。Linuxディストリビューションで利用可能な一般的な辞書を使用します。こちらからダウンロードできます。 https://www.dropbox.com/s/8tyzf94ps37tzp7/words?dl=0 99171英語の単語があります。ローカルLinux /usr/share/dict/wordsが同じファイルである場合(md5sum == cbbcded3dc3b61ad50c4e36f79c37084がある場合)、それを使用できます。 単語は回答で1回だけ使用できます。 編集:文字は大文字/小文字、アポストロフィ、アクセントを含めて正確に一致する必要があります。 有効な回答の例は次のとおりです idea deadpan panoramic micra craftsman mantra traffic fiche 。スコアは8です。 有効な単語のチェーンが最も長い答えが勝者になります。同点の場合、最も早い回答が勝ちます。答えには、見つけた単語のチェーンと、(もちろん)それを実行するために書いたプログラムがリストされているはずです。

10
昇順行列
「昇順行列」は、任意の要素がそれぞれの行と列で以前に使用されていない最小の利用可能な要素である整数の無限行列(0を含む)です。 | 1 2 3 4 5 6 ... --+---------------- 1 | 0 1 2 3 4 5 ... 2 | 1 0 3 2 5 4 ... 3 | 2 3 0 1 6 7 ... 4 | 3 2 1 0 7 6 ... 5 | 4 5 …
17 code-golf  math  matrix  programming-puzzle  code-golf  music  code-challenge  programming-puzzle  code-golf  fastest-code  code-golf  number  game  code-golf  combinatorics  code-golf  math  sequence  restricted-complexity  code-golf  number  random  code-golf  array-manipulation  code-golf  math  matrix  code-golf  number  sequence  counting  code-golf  math  number  sequence  popularity-contest  number  sequence  code-golf  music  code-golf  number  code-golf  ascii-art  arithmetic  code-golf  code-golf  number  code-golf  code-challenge  array-manipulation  code-golf  grammars  code-challenge  polyglot  code-golf  game  math  python  programming-puzzle  code-challenge  king-of-the-hill  code-challenge  fastest-code  primes  number-theory  number-theory  primes  fastest-code  factoring  popularity-contest  compile-time  code-golf  math 

1
正規表現の検証正規表現[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Code Golf Stack Exchangeのトピックになるようにします。 去年閉鎖されました。 入力として正規表現文字列を受け入れ、それが有効かどうかを確認する正規表現を作成します。基本的に、正規表現はそれ自体を検証できるはずです。(無効な正規表現は検証されないため、使用できません.*。;) フレーバーは、よく知られている実装(Perl、sed、grep、gawkなど)によって完全にサポートされている必要があり、それらの実装がサポートするものを完全にサポートしている必要があります。[弁護士が話すことを心配しないでください。私は、スマート***の可能性のある抜け穴を削除しようとしています。] 私はそれをコードゴルフしたいと思いますが、機能が豊富ではないフレーバーを知って使用している人々に優位性を与えるのではないかと心配しています。または、私の心配は根拠がありませんか?
17 code-challenge  code-golf  code-golf  game  sudoku  code-challenge  math  ai-player  code-challenge  sorting  rosetta-stone  code-challenge  code-challenge  programming-puzzle  code-golf  number  code-golf  maze  code-golf  math  regular-expression  code-golf  sequence  code-golf  graph-theory  code-golf  string  word-puzzle  natural-language  brainfuck  metagolf  optimized-output  fastest-algorithm  code-golf  game-of-life  cellular-automata  code-golf  puzzle-solver  grid  code-golf  combinatorics  binary-tree  popularity-contest  code-challenge  code-golf  ascii-art  kolmogorov-complexity  brainfuck  metagolf  code-golf  c  date  code-golf  word-puzzle  crossword  word-search  code-golf  code-golf  quine  code-golf  string  random 

2
自由なn-ポリオミノを持つn X n正方形の個別のタイルの数
最新の「素敵な」 OEISシーケンスであるA328020は、数分前に公開されました。 自由なn-ポリオミノを持つn X n正方形の個別のタイルの数。 このシーケンスは、正方形の対称性までのタイルをカウントします。シーケンスには6つの用語がありますが、ここの人々がさらに拡張できるかどうかを確認したいと思います。 例 ためn=4OEISからこのイメージに示すように、このようなグリッド22があります。 クレジット:Jeff Bowermaster、A328020(4)のイラスト。 チャレンジ この前の課題と同様に、この課題の目標は、このシーケンスで可能な限り多くの項を計算することです1, 1, 2, 22, 515, 56734。n項は、nポリオミノを含むn X nグリッドのタイル数です。 好きなだけコードを実行します。このチャレンジの勝者は、シーケンスのほとんどの用語とそれを生成するコードを投稿するユーザーです。2人のユーザーが同じ数の用語を投稿すると、最後の用語を最も早く投稿した人が勝者となります。

3
三角形を失うことなく三角形配列からポイントを削除する
私が持っている組合せ論の問題、私は上に置くしたいというOEISを -the問題は、私は十分な条件を持っていないということです。このコードの課題は、より多くの用語を計算できるようにすることです。勝者は、最も多くの用語を含む提出物を持つユーザーになります。 問題 辺の長さがnnn三角形の電球の配列を与えたとしましょう: o o o o o o o o o o o o o o o o o o o o o 1 2 ... n 次の例のように、「直立した」正三角形を形成する3つの電球をオンにします。 o o x o o o o o o o o x o o x o o o o o …

11
スティーンロッド代数の基底要素を生成する
スティーンロッド代数は、代数トポロジーで現れる重要な代数です。スティーンロッド代数は、「スティーンロッド平方」と呼ばれる演算子によって生成されます。正整数iごとに1つ存在します。二乗演算の「許容可能な単項式」から成るスティーンロッド代数の基礎があります。この基盤を生成することが私たちの目標です。 各整数が次の整数の少なくとも2倍である場合、正の整数のシーケンスは許容可能と呼ばれます。したがって、たとえばおよび[7,2,1]ため、許容されます。一方、ため、許容できません。(トポロジーでは、シーケンスに対してを記述します)。7≥2∗27≥2∗27 \geq 2*22≥2∗12≥2∗12 \geq 2*1[3,2]3&lt;2∗23&lt;2∗23 < 2*2Sq7Sq2Sq1Sq7Sq2Sq1\mathrm{Sq}^7 \mathrm{Sq}^2\mathrm{Sq}^1[7,2,1] シーケンスの次数は、エントリの合計です。したがって、たとえば、次数[7,2,1]は7+2+1=107+2+1=107 + 2 + 1 = 10です。過剰許容シーケンスの最初の要素マイナス残りの元素の合計であるので、[7,2,1]過剰有する7−2−1=47−2−1=47 - 2 - 1 = 4。 仕事 正の整数のペアを取り、(d,e)次数dと超過の許容可能なすべてのシーケンスのセットを出力するプログラムを作成しeます。出力はセットなので、許容されるシーケンスの順序は関係ありません。 例: Input: 3,1 Output: [[2,1]] ここでは、合計3の許容シーケンスを探しています。2つのオプションが[3]あり[2,1]ます。([1,1,1]および[1,2]合計は3ですが、許容されません)。の過剰[3]は3で、過剰[2,1]は2−1=12−1=12-1 = 1です。従って、過剰の配列のみ≤1≤1\leq1[2,1]。 Input: 6, 6 Output: [[6], [5, 1], [4, 2]] (or any reordering, e.g., [[5,1],[4,2],[6]]) 過剰は常に次数以下であるため、過剰条件はありません。このように、私達はちょうどのオプションがある度6のすべての許容シーケンスを見つけるためにしようとしている[6]、[5, 1]と[4, 2]。(これらは、過剰有する666、5 − …

4
炭素アルカンの数
正の数与えられた、立体異性体を無視して、個の炭素原子を持つアルカンの数を求めます。または、同等に、すべてのノードが次数持つような、ノードを持つラベルなしツリーの数。nnnnnnnnn≤4≤4\le 4 これは、OEISシーケンスA000602です。 参照:パラフィン-ロゼッタコード 例 以下のために、答えはので、ヘプタンは 9つの持つ異性体を:n=7n=7n = 7999 ヘプタン:H3C−CH2−CH2−CH2−CH2−CH2−CH3H3C−CH2−CH2−CH2−CH2−CH2−CH3\mathrm{H_3C-CH_2-CH_2-CH_2-CH_2-CH_2-CH_3} 2-メチルヘキサン:H3C−CH(CH3)−CH2−CH2−CH2−CH3H3C−CH(CH3)−CH2−CH2−CH2−CH3\mathrm{H_3C-CH(CH_3)-CH_2-CH_2-CH_2-CH_3} 3-メチルヘキサン:H3C − C H2− C H (C H3)− C H2− C H2− C H3H3C−CH2−CH(CH3)−CH2−CH2−CH3\mathrm{H_3C-CH_2-CH(CH_3)-CH_2-CH_2-CH_3} 2,2-ジメチル:H3C − C (C H3)2− C H2− C H2− C H3H3C−C(CH3)2−CH2−CH2−CH3\mathrm{H_3C-C(CH_3)_2-CH_2-CH_2-CH_3} 2,3-ジメチル:H3C − C H (C H3)− C H (C H3)− C H2− C H3H3C−CH(CH3)−CH(CH3)−CH2−CH3\mathrm{H_3C-CH(CH_3)-CH(CH_3)-CH_2-CH_3} …

27
ユニークな南京錠PINリスト!
前書き プライベートチャットで、私の友人が最近有効なピンに次の2つの制限があるセキュリティシステムを偶然見つけました。 各数字は一意である必要があります(つまり、「1」は一度しか表示されません) 数字の順序は関係ありません( "1234" = "4321") この南京錠システムがどれほど悪いかを示すために、実際にすべての有効なPINを列挙しましょう! 入力 入力は、PINの長さを示す単一の正の整数で構成されます。 出力 出力は、指定された長さのすべての有効なPINを列挙する非負の整数または文字列*のリストで構成されます。 *より正確には、すべての組み合わせを印刷する場合に、人間がすべての組み合わせを試すために使用できるもの。これは、数字のセットのセットと数字のアレイの配列が適切であることを意味します。 誰が勝ちますか? これはコードゴルフなので、バイト単位の最短回答が勝ちです!標準ルールと抜け穴が適用されます。 コーナーケース 10より大きい整数が入力された場合の出力動作は未定義です。 ゼロのエントリには実際にゼロが含まれるため、各出力エントリ内の数字の順序は未定義です。つまり、「0123」から「123」を除去することはできませんが、「1230」、「1203」、「1023」はすべて有効です「0123」と同様です。 テストケース 1 [0,1,2,3,4,5,6,7,8,9] 2 [10,20,30,40,50,60,70,80,90,21,31,41,51,61,71,81,91,32,42,52,62,72,82,92,43,53,63,73,83,93,54,64,74,84,94,65,75,85,95,76,86,96,87,97,98] 3 [210,310,410,510,610,710,810,910,320,420,520,620,720,820,920,430,530,630,730,830,930,540,640,740,840,940,650,750,850,950,760,860,960,870,970,980,321,421,521,621,721,821,921,431,531,631,731,831,931,541,641,741,841,941,651,751,851,951,761,861,961,871,971,981,432,532,632,732,832,932,542,642,742,842,942,652,752,852,952,762,862,962,872,972,982,543,643,743,843,943,653,753,853,953,763,863,963,873,973,983,654,754,854,954,764,864,964,874,974,984,765,865,965,875,975,985,876,976,986,987] 4 [3210,4210,5210,6210,7210,8210,9210,4310,5310,6310,7310,8310,9310,5410,6410,7410,8410,9410,6510,7510,8510,9510,7610,8610,9610,8710,9710,9810,4320,5320,6320,7320,8320,9320,5420,6420,7420,8420,9420,6520,7520,8520,9520,7620,8620,9620,8720,9720,9820,5430,6430,7430,8430,9430,6530,7530,8530,9530,7630,8630,9630,8730,9730,9830,6540,7540,8540,9540,7640,8640,9640,8740,9740,9840,7650,8650,9650,8750,9750,9850,8760,9760,9860,9870,4321,5321,6321,7321,8321,9321,5421,6421,7421,8421,9421,6521,7521,8521,9521,7621,8621,9621,8721,9721,9821,5431,6431,7431,8431,9431,6531,7531,8531,9531,7631,8631,9631,8731,9731,9831,6541,7541,8541,9541,7641,8641,9641,8741,9741,9841,7651,8651,9651,8751,9751,9851,8761,9761,9861,9871,5432,6432,7432,8432,9432,6532,7532,8532,9532,7632,8632,9632,8732,9732,9832,6542,7542,8542,9542,7642,8642,9642,8742,9742,9842,7652,8652,9652,8752,9752,9852,8762,9762,9862,9872,6543,7543,8543,9543,7643,8643,9643,8743,9743,9843,7653,8653,9653,8753,9753,9853,8763,9763,9863,9873,7654,8654,9654,8754,9754,9854,8764,9764,9864,9874,8765,9765,9865,9875,9876]

1
次数kの多項式にk + 2点が入らないような順列
説明 (インデックスと一緒に)ポイントのセットが次数の多項式に該当しない場合、整数の順列を最小補間{1, 2, ..., n}可能と呼びます。あれは、k+2k 水平線上に2点はありません(0次多項式) 3つの点が直線上にない(1次多項式) 放物線上に4つの点はありません(2次多項式) など。 チャレンジ OEISシーケンスA301802(n)を計算するプログラムを作成します。これは、{1, 2, ..., n}forの最小補間順列の数をn可能な限り大きくします。 得点 入力を増やしながら、コンピューター(2.3 GHz Intel Core i5、8 GB RAM)でコードの時間を計ります。スコアは、正しい値を出力するのに1分もかからない最大の入力になります。 例 たとえば、置換[1, 2, 4, 3]は次の理由で最小限に補間できます。 the terms together with their indices [(1, 1), (2, 2), (3, 4), (4, 3)] have the property that (0) No two points have …

16
パーティションはいくつありますか?
正の整数のパーティション番号は、正の整数の合計として表現できるウェイの数として定義されます。言い換えれば、それが持っている整数パーティションの数。たとえば、番号4には次の部分があります。 [[1、1、1、1]、[1、1、2]、[1、3]、[2、2]、[4]] したがって、5パーティションがあります。これはOEIS A000041です。 仕事 与えられた正の整数Nは、そのパーティション番号を決定します。 すべての標準ルールが適用されます。 入力および出力は、合理的な手段で処理できます。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 テストケース 入力| 出力 1 | 1 2 | 2 3 | 3 4 | 5 5 | 7 6 | 11 7 | 15 8 | 22 9 | 30 10 | 42

7
完全な正方形のみを含むパーティションはいくつありますか?
非負の整数または数字のリストが与えられた場合、先行ゼロが含まれる可能性のある平方数を連結することで、いくつの方法で数を形成できるかを決定します。 例 input -&gt; output # explanation 164 -&gt; 2 # [16, 4], [1, 64] 101 -&gt; 2 # [1, 01], [1, 0, 1] 100 -&gt; 3 # [100], [1, 00], [1, 0, 0] 1 -&gt; 1 # [1] 0 -&gt; 1 # [0] 164900 -&gt; 9 # [1, 64, …

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