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

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

3
道路はいくつの方法で川を渡れますか?
まっすぐな川と、橋をn回川を渡る道路を想像してください。道路はそれ自体でループせず、無限に長くなります。この道路は、曲がりくねった道と見なされます。オープン蛇行は、それ自体と交差しないと線と交差する両端に無限に延び開曲線であるN回。 有効な蛇行は、それが訪れる交差点の順序によって完全に記述される場合があります。 蛇行する可能性があるn 個の交差点を持つ交差点の明確なパターンの数は、n番目の平均数です。たとえば、n = 4 このシーケンスの最初の数は次のとおりです。 1, 1, 1, 2, 3, 8, 14, 42, 81, 262, 538, 1828, 3926, 13820, 30694, 110954... これは、OEISシーケンスA005316です。 チャレンジ 入力として正の整数nを取り、n番目の平均値を出力するプログラム/関数を作成します。 仕様書 標準のI / Oルールが適用されます。 標準的な抜け穴は禁止されています。 ソリューションには0インデックスまたは1インデックスのいずれかを指定できますが、どちらを指定してください。 この課題は、すべての言語で最短のアプローチを見つけることではなく、各言語で最短のアプローチを見つけることです。 あなたのコードがされるバイト数で得点特に指定がない限り、通常はエンコーディングUTF-8で、。 このシーケンスを計算する組み込み関数は許可されますが、組み込みに依存しないソリューションを含めることをお勧めします。 「実用的な」言語であっても説明が奨励されます。 テストケース これらは0インデックスです。言語がデフォルトでできない場合、これほど大きな数字を処理する必要はないことに注意してください。 Input Output 1 1 2 1 11 1828 14 30694 21 73424650 …

2
他のすべてからどれくらい離れているかを数えます
等しい長さの2つのストリング間のハミング距離は、対応するシンボルが異なる位置の数です。 してみましょうP長さのバイナリ文字列にするnとT長さのバイナリ文字列です2n-1。のすべての長さの部分文字列のn間のハミング距離を左から右に順番に計算し、それらを配列(またはリスト)に入れることができます。PnT ハミング距離シーケンスの例 させP = 101てくださいT = 01100。このペアから得られるハミング距離のシーケンスは2,2,1です。 近さの定義 次に、このようなハミング距離のシーケンスを2つ考えてみましょう。と言うx = (0, 2, 2, 3, 0)とy = (2, 1, 4, 4, 2)例として。私たちはそれを言ってxおりy、closeもしy <= x <= 2*yそうならx <= y <= 2*x。ここで、スカラー乗算と不等式は要素ごとに取られています。つまり、2つのシーケンスAとB、A <= B iff A[i] <= B[i]すべてのインデックスに対してi。 ハミング距離のシーケンスは、これらの比較方法では半順序を形成することに注意してください。言い換えれば、シーケンスの多くのペアは、互いに大きくも等しくも小さくも等しくありません。たとえば(1,2)と(2,1)。 したがって、上記の例を使用して、(0, 2, 2, 3, 0) <= 2*(2, 1, 4, 4, 2) = (4, …

16
パリンドロームであるストリング順列の数
入力は、小さな英語の文字で構成される文字列になります。 あなたの仕事は、パリンドロームである元の文字列の異なる順列の数を決定することです。 入力文字列は最大100文字です。長い文字列の場合、結果は非常に大きくなる可能性があるため、出力は666013を法とする順列の数になります。 例えば、 cababaa -> 3 可能な順列は次のとおりです。 aabcbaa abacaba baacaab これはcode-golfなので、最短の答えが勝ちです!

14
ソートされた要素のリストのすべての組み合わせを生成します
入力としてリストと数字を受け取り、数字の長さで可能なすべての組み合わせを生成するコードを作成します。たとえば、リスト{0,1}と番号2の場合: 00 01 10 11 プログラムでは、 {0,0,0,0,0,1,1,5,5}のように、リスト内で2回以上文字を期待する必要はありません。 リストの順序で、組み合わせを並べ替えて印刷してください。 リスト{0,1}と数字5(私のコードの一部によって生成され、勝つには長すぎます): 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111 しかし、リスト{1,0}と番号2の場合: 11 10 01 00 ご覧のとおり、逆順リストは逆順を意味します。 構造を見てみましょう、それは木のようなものです。 これはコードゴルフなので、バイト単位の最短コードが勝ちです!

4
N個のコインと各金種を使用したコイン変更問題の列挙
硬貨釣銭の問題は非常によく文書化されています。宗派のコインの無限の供給を考えるx_1とx_m、あなたまで追加の組み合わせの数を見つける必要がありますy。例えば、与えられたx = {1,2,3}とy = 4我々は4つの組み合わせがあります。 {1,1,1,1} {1,1,2} {1,3} {2,2} 前書き コイン交換の問題にはいくつかのバリエーションがあります。このバリエーションでは、2つの追加の制限があります。 すべての額面を少なくとも1回使用する必要があります。 正確に固定された数のコインを合計で使用する必要があります。 例えば、与えられたx = {1,2,3}、y = 36そしてn = 15どこnに使用しなければならないコインの総数であり、我々は4つの組み合わせを取得します: {1,2,2,2,2,2,2,2,3,3,3,3,3,3,3} (1個、7個の2個、7個の3個) {1,1,2,2,2,2,2,3,3,3,3,3,3,3,3} (2個、5個の2個、8個の3個) {1,1,1,2,2,2,3,3,3,3,3,3,3,3,3} (3個、3個の2個、9個の3個) {1,1,1,1,2,3,3,3,3,3,3,3,3,3,3} (4個、1個の2個、10個の3個) チャレンジ 課題は、enumerate上記のすべての組み合わせを列挙する、選択した言語で関数を作成することです。 宗派のリスト。たとえば{1,5,10,25}。リストまたは配列のいずれかを使用できます。 yすべての組み合わせの合計を示す負でない整数。 nコインの総数を示す負でない整数。 引数の順序は関係ありません。ポイントフリー機能が許可されています。 enumerate関数の出力は、組み合わせのリストでなければなりません。各組み合わせは一意である必要があり、合計がのn整数のリストである必要がありますy。すべての額面は、各組み合わせで少なくとも1回出現する必要があり、組み合わせが欠落してはなりません。整数と組み合わせの順序は関係ありません。出力にはリストまたは配列を使用できます。 次のエッジケースに注意してください。 両方の場合yとがnゼロであり、金種のリストが空で、出力が1つの組み合わせのリストである、空の組み合わせ(すなわち、{{}})。 そうでなければ、yがゼロ、ゼロ、nまたは金種のリストが空の場合、出力はゼロの組み合わせのリスト(つまり{})になります。 より一般的にyは、金種の合計よりも小さい場合、または金種nの数よりも少ない場合、出力はゼロの組み合わせのリストになります。 スコアリングは、バイト単位のプログラム全体のサイズに基づきます。これには、enumerate関数、ヘルパー関数、インポートステートメントなどが含まれることに注意してください。テストケースは含まれません。

11
大文字と小文字の区別は重要ですか?
トムは、彼の発明の新しいプログラミング言語を実装する予定です。しかし、実際に作業を開始する前に、彼は自分の言語で大文字と小文字を区別するかどうかを知りたいと思っています。 一方で、大文字小文字の区別は実装しやすいようですが、変数を形成する文字の組み合わせの可能性が不足する可能性があることを心配しています。つまり、名前の衝突を避けるために長い変数名を使用する必要があることを意味しますたとえば、あなたが使用することができHello、HEllo、heLLoおよび他の可能性の束言語は大文字と小文字が区別されますが、場合にのみ、HELLOそうでない場合)。 しかし、トムは細心の注意を払っているので、心配するだけでは十分ではありません。彼は数字を知りたい。 チャレンジ n入力として整数を指定し、n大文字と小文字を区別して、または区別せずに長さの文字列で可能な置換数の差を出力する(または返す)関数(または、言語がサポートしない場合は完全なプログラム)を記述します。 トムの言語では、変数名にはすべてのアルファベット文字、アンダースコア、および2番目の文字から始まる数字を含めることができます。 テストケース Input (length of the variable) -> Output (difference between the possibilities with case sensitivity and the possibilities with case insensitivity) 0 -> 0 1 -> 26 2 -> 2340 5 -> 784304586 8 -> 206202813193260 9 -> 13057419408922746 競合しないC ++リファレンス実装 void diff(int n) …

4
ゲッターをゲット
タスク 私は誰もが自動コード生成と仕事中の時間の節約を愛していると思います。日中は多くのクラスとメンバーを作成するgetters必要があり、それらすべてを手動で作成する必要はありません。 タスクはgetters、すべてのクラスメンバーに対して自動的に生成されるプログラムまたは関数を作成することです。 入力 私たちの言語では、オブジェクトは非常に単純です。クラスおよびメンバーの名前は、文字から始まる必要[a-zA-Z]があり、文字のみを含めることができます[a-zA-Z0-9]。以下に例を示します。 class Stack { public overflow; protected trace; private errorReport; } 出力 これは、指定された例に基づいた有効な出力です。 class Stack { public overflow; protected trace; private errorReport; public function getOverflow() { return this->overflow; } public function getTrace() { return this->trace; } public function getErrorReport() { return this->errorReport; } } ゲッター getterメソッドの要件は次のとおりです。 …
13 code-golf  string  syntax  code-golf  math  primes  rational-numbers  code-golf  graphical-output  image-processing  code-golf  kolmogorov-complexity  music  audio  code-golf  string  code-golf  math  geometry  code-golf  math  sequence  combinatorics  code-golf  game  grid  board-game  code-golf  restricted-source  array-manipulation  source-layout  code-golf  base-conversion  binary  code-golf  math  physics  code-golf  math  number  date  expression-building  code-golf  array-manipulation  graph-theory  decision-problem  popularity-contest  error-correction  code-golf  kolmogorov-complexity  geometry  grid  code-challenge  arithmetic  combinatorics  set-partitions  code-golf  kolmogorov-complexity  sequence  fibonacci  code-golf  restricted-source  pristine-programming  code-golf  code-golf  string  kolmogorov-complexity  code-golf  arithmetic  code-golf  string  parsing  code-golf  code-golf  sorting  counting  permutations  3d  code-golf  code-golf  ascii-art  music  code-golf  string  code-golf  string  ascii-art  code-golf  string  code-golf  quine  polyglot  code-golf  math  string  code-golf  internet 

5
15パズルの順列
チャレンジ 解決された状態の15パズルの次の図を検討してください。 _____________________ | | | | | | 1 | 2 | 3 | 4 | |____|____|____|____| | | | | | | 5 | 6 | 7 | 8 | |____|____|____|____| | | | | | | 9 | 10 | 11 | 12 | |____|____|____|____| | | …

3
Brainfuckのビット演算子
あなたの仕事は、以下の二項演算子のそれぞれに対して1つのBrainfuckプログラムを作成することです。各プログラムは、入力から1つまたは2つの8ビット数(AおよびB)を取得し、指定された操作を計算する必要があります。 A XOR B A AND B A OR B A Shifted Left by 1 (circular shift) NOT A 5つすべてを実装する必要はありません。スコアは次の方法で計算されます。 #totalCharacters + {4000 * #problemsNotCompleted} したがって、有効なスコアはゼロ(最高)から20,000(何も完了していない)までです。 結果を保存する場所や、入力を保存するかどうかは気にしません。8ビットセル、および必要なだけの空のセルを右側にのみ想定します。 最適なメモリ位置に番号がすでにあると仮定することができるので、IO操作を心配する必要はありません。
13 code-golf  binary  brainfuck  code-golf  code-golf  ascii-art  random  code-golf  code-golf  code-challenge  sorting  code-golf  code-challenge  java  code-golf  statistics  code-golf  code-challenge  fastest-code  code-golf  math  code-golf  math  kolmogorov-complexity  code-golf  code-golf  array-manipulation  combinatorics  code-golf  kolmogorov-complexity  popularity-contest  underhanded  code-golf  math  floating-point  code-golf  interpreter  code-golf  music  code-golf  code-golf  cryptography  code-challenge  scrabble  code-golf  code-challenge  popularity-contest  quine  code-golf  quine  cryptography  code-golf  kolmogorov-complexity  code-golf  printable-ascii  code-golf  chess  code-golf  math  number-theory  code-challenge  c  code-golf  random  popularity-contest  hello-world  code-shuffleboard  code-golf  compression  grammars  code-golf  tips  code-golf  sequence  code-golf  string  code-challenge  sorting  permutations  code-golf  string  code-challenge  optimization  code-golf  interpreter  code-challenge  string  code-golf  math  number  fibonacci  string  compression  c#  code-golf  chemistry  popularity-contest  math  c  c++  java  code-golf  math  function  code-golf  complex-numbers  code-golf  geometry 

7
すべての可能な点字を書きます
今朝、面白いパズルがエレベーターのボタンを見て私に来ました。 2x3グリッドに収まるすべての点字パターンのリストを生成する必要があります。ハッシュ#を使用してバンプ-を示し、ハイフンを使用して平坦な領域を示します。 予想される出力サンプル: #- -- -- ## -- -- #- #- -- (and so on...) ルール: プログラムでは、各パターンを少なくとも1つの文字または行で区切る必要があります。 パターンは任意の順序で生成できます。 点字のアルファベットが実際に使用するものに関係なく、すべてのパターンを作成する必要があります。完全に空白のパターンはオプションです。 一意のバンプパターンのみを生成する必要があります。以下のパターンは、バンプが同一の配置にあるため、同等と見なされます。これらの場合、左上隅に最も近いパターン(つまり、この例の最初のオプション)を使用します。 #- -# -- -- #- -# #- -# -- -- #- -# あなたはそれがすべてのために動作させることができればボーナスポイントのxでyの大きさのグリッド。(編集:妥当な範囲内。概念実証には4x4までで十分です。) ウィキの記事を読むと、このパズルのルールを満たす45のパターン(空白を含む)があるようです。

2
一般化ポリオミノのカウント
この課題では、スナブスクエアタイル上の擬似ポリフォームを数える必要があります。 このシーケンスはまだOEISに存在しないため、このシーケンスのできるだけ多くの項を計算するという課題があります。 更新:これはOEISにA309159として追加されました。n個のセルを持つスナブ正方形タイル上の一般化されたポリフォームの数。 定義 スナブ正方形タイルは、正三角形と正方形で構成される平面の半規則的なタイルです。 スナブ正方形タイル上の擬似ポリフォームは、ポリオミノに似た、共有された辺に沿ってこれらの三角形と正方形を結合することによって構築された平面図です。6セルおよび8セルの擬似ポリフォームの例を次に示します。 例 以下のためにn = 12つの1セル擬似polyforms、すなわち正方形および三角形があります。 以下のためにn = 22つの2セル擬似polyforms、三角形及び二つの三角形を有する、すなわち正方形があります。 以下のためにn = 34つの3セル擬似polyformsがあります。 チャレンジ この課題の目標は、このシーケンスで可能な限り多くの項を計算することです。この2, 2, 4, ...項では、n番目の項は回転と反射までのnセルの擬似ポリフォームの数です。 好きなだけコードを実行します。このチャレンジの勝者は、シーケンスのほとんどの用語とコードを投稿するユーザーです。2人のユーザーが同じ数の用語を投稿すると、最後の用語を最も早く投稿した人が勝者となります。 (このシーケンスがOEISにまだ存在しないことを証明するのに十分な既知の用語があれば、OEISにエントリを作成し、必要に応じて共著者として貢献者をリストします。)

4
適切な合計で行列の数を計算する
Steenrod代数のMilnor基底で単項式を乗算する場合、アルゴリズムの一部には特定の「許容行列」の列挙が含まれます。 非負整数r 1、...、r mおよび s 1、...、s nの 2つのリストが与えられ、非負整数Xの行列 次の場合に許容されます j番目の列の合計はs j以下です。 2のべき乗で重み付けされたi番目の行の合計は、r i以下です。 仕事 リストr 1、...、r mおよびs 1、s 1、...、s nのペアを取り、これらのリストに許容される行列の数を計算するプログラムを作成します。プログラムは、必要に応じて、オプションでmおよびnを追加の引数として使用できます。 これらの番号は、好きな形式で入力できます。たとえば、リストにグループ化したり、単項でエンコードしたり、その他何でもかまいません。 出力は正の整数でなければなりません 標準の抜け穴が適用されます。 得点 これはコードゴルフです。バイト単位の最短ソリューションが勝ちです。 例: 以下の場合[2]と[1]、2人の許容行列があります。 用[4]と[1,1]3人の許容行列があります。 用[2,4]と[1,1]5人の許容行列があります。 テストケース: Input: [1], [2] Output: 1 Input: [2], [1] Output: 2 Input: [4], [1,1] Output: 3 Input: [2,4], [1,1] Output: 5 …

6
有理生成関数の係数を見つける
数値のシーケンスをべき級数の係数として記述する場合、そのべき級数はそのシーケンスの(通常の)生成関数(またはGf)と呼ばれます。つまり、ある関数F(x)と一連の整数a(n)について次のようになっている場合: a(0) + a(1)x + a(2)x^2 + a(3)x^3 + a(4)x^4 + ... = F(x) 次にF(x)はの生成関数ですa。たとえば、幾何級数は次のことを示しています。 1 + x + x^2 + x^3 + x^4 + ... = 1/(1-x) したがって、の生成関数は1, 1, 1, ...です1/(1-x)。上記の式の両側を微分して乗算するxと、次の等式が得られます。 x + 2x^2 + 3x^3 + 4x^4 + ... = x/(1-x)^2 したがって、の生成関数は1, 2, 3, ...ですx/(1-x)^2。関数の生成は非常に強力なツールであり、それらを使用して多くの便利なことができます。簡単な紹介はここにありますが、本当に徹底的な説明のために、素晴らしい本生成機能があります。 この課題では、入力として有理関数(整数係数を持つ2つの多項式の商)を、最初に分子、次に分母の2つの整数係数の配列として受け取ります。たとえば、関数f(x) = x …
12 code-golf  math  integer  polynomials  code-golf  math  abstract-algebra  restricted-time  code-golf  math  primes  code-golf  math  number  arithmetic  code-golf  quine  code-golf  number  sequence  code-golf  string  number  code-golf  array-manipulation  code-golf  number  code-golf  string  code-golf  arithmetic  code-golf  string  array-manipulation  rubiks-cube  code-golf  math  number  code-golf  tips  bash  code-golf  ascii-art  music  code-golf  arithmetic  code-golf  math  number  arithmetic  integer  code-golf  number  array-manipulation  code-golf  geometry  grid  set-partitions  code-golf  math  number  code-golf  combinatorics  code-golf  regular-expression  code-golf  permutations  code-golf  ascii-art  code-golf  number  array-manipulation  matrix  code-golf  kolmogorov-complexity  compile-time  cops-and-robbers  polyglot  cops-and-robbers  polyglot  code-golf  string  code-golf  string  ascii-art  matrix  animation  code-golf  ascii-art  code-golf  string  balanced-string  code-golf  integer  integer-partitions  expression-building 

13
数を二乗和として書く方法はいくつありますか?
仕事 2つの整数dとが与えられた場合、平方和としてn表現する方法の数を見つけます。つまり、そのようなことは、すべての整数の整数です。2つの異なる値(たとえばと)を交換することは、元のソリューションとは異なると見なされることに注意してください。ndn == r_1 ^2 + r_2 ^2 + ... + r_d ^2r_m1 ≤ m ≤ dr_1r_2 たとえば、45という数字は2つの正方形の合計として8つの異なる方法で記述できます。 45 == (-6)^2 + (-3)^2 == (-6)^2 + 3^2 == (-3)^2 + (-6)^2 == (-3)^2 + 6^2 == 3^2 + (-6)^2 == 3^2 + 6^2 == 6^2 + (-3)^2 == 6^2 + …

14
ファイルにゼロを埋め込む
今日のタスクは、既存のファイルを取得し、特定のサイズに達するまでゼロを追加することです。 現在のディレクトリ内のファイル名fとバイト数を取得するプログラムまたは関数を作成する必要がありますb。の元のコンテンツを維持しながら、新しいサイズがバイトになるように、末尾にfゼロ(ASCIIバイトではなくヌルバイト)を書き込む必要がありbます。 あなたは、と仮定してよいfことは、当初よりも大きくないと、あなたはそれを完全なアクセス許可を持っていることを、その名前だけでASCII英数字を持っていbますが、同じ大きようなものであってもよいb、と無限の空きディスク容量があること。 f空でないと仮定したり、すでにヌルバイトが含まれていないと仮定したりすることはできません。 実行が終了した後、他の既存のファイルを変更したり、新しいファイルを作成したりしないでください。 テストケース fの内容| b | fの結果の内容 12345 | 10 | 1234500000 0 | 3 | 000 [空] | 2 | 00 [空] | 0 | [空の] 123 | 3 | 123
12 code-golf  file-system  code-golf  code-golf  string  code-golf  string  code-golf  random  game  compression  code-golf  array-manipulation  sorting  code-golf  number  arithmetic  primes  code-golf  geometry  code-golf  code-golf  decision-problem  regular-expression  code-golf  string  math  code-challenge  restricted-source  integer  palindrome  code-golf  string  palindrome  code-challenge  busy-beaver  code-golf  ascii-art  code-golf  string  code-golf  string  permutations  code-golf  code-golf  string  permutations  code-golf  number  primes  function  set-theory  code-challenge  hello-world  code-golf  math  number  decision-problem  code-golf  code-golf  sequence  arithmetic  integer  code-golf  math  number  arithmetic  decision-problem  code-golf  kolmogorov-complexity  alphabet  code-golf  combinatorics  graph-theory  tree-traversal  code-golf  set-theory  code-golf  interpreter  brainfuck  substitution  code-golf  quine  permutations 

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