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

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

3
原子プロポーションのゲーム
あなたのタスクはAtomasをプレイするボットを作成し、最高スコアを獲得します。 ゲームの仕組み: ゲームボードは、6つの「原子」のリングから始まります。 1します3。原子自体に応じて、2つの原子間または別の原子上で原子を「再生」できます。 通常のアトムまたは特別なアトムを使用できます。 通常の原子: ボード上の任意の2つの利用可能な原子の間で通常の原子を再生できます。 範囲内の原子から始めます1 to 3が、範囲は40移動ごとに1ずつ増加します(したがって、40移動後に範囲は2 to 4)。 ボード上に範囲よりも低い原子がある場合1 / no. of atoms of that number on the board、スポーンする可能性があります。 2プレイする必要があるとしましょう。ボードは次のようになります。 1 1 2 1 2の右側に配置しましょう1。 ボードは次のようになります。 1 1 2 1 2 注:ボードは折り返されているので、1左端は実際には2右端のます。これは後で重要になります。 「特別な」アトムには4つのタイプがあり、それらは次のとおりです。 の +アトム: このアトムは、2つのアトム間で再生されます。産卵の確率は5分の1です。 原子の両側の+原子が同じ場合、融合が発生します。仕組みは次のとおりです。 The two atoms fuse together to create an atom …
21 code-challenge  game  code-golf  combinatorics  permutations  code-golf  image-processing  brainfuck  encode  steganography  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  ascii-art  fibonacci  code-golf  string  code-golf  sorting  popularity-contest  statistics  code-golf  ascii-art  kolmogorov-complexity  code-golf  code-golf  ascii-art  tic-tac-toe  code-golf  string  code-challenge  classification  test-battery  binary-matrix  code-golf  math  arithmetic  code-golf  ascii-art  random  code-golf  string  code-golf  number  binary  bitwise  code-golf  number  arithmetic  code-golf  math  ascii-art  code-golf  string  ascii-art  code-golf  string  ascii-art  code-golf  string  code-golf  counting  code-golf  number  binary  bitwise  decision-problem  code-golf  array-manipulation  code-golf  tips  brain-flak  code-challenge  quine  source-layout  code-generation  code-golf  linear-algebra  matrix  abstract-algebra  binary-matrix  code-golf  string  palindrome  code-golf  puzzle-solver  sudoku  code-golf  ascii-art  code-golf  graphical-output  internet  code-golf  ascii-art  kolmogorov-complexity  code-golf  math  code-golf  clock 

30
指定された幅で#の中空の正方形を描画します
私はCodingameからこの課題を受け取り、私のものよりも優れたソリューションに興味があります。 標準入力を使用して幅を指定すると、指定された幅と長さで「#」の中空の四角形が描画されます。 例: 5の結果 ##### # # # # # # ##### 私はこれを解決するためにPythonを使用したので、他のPythonコードに特に興味があります。ただし、必要な言語でソリューションを投稿してください。
21 code-golf  string  ascii-art  number  code-golf  grid  code-golf  string  ascii-art  code-golf  alphabet  cipher  code-golf  math  number  code-golf  quine  code-golf  palindrome  polyglot  code-golf  number  array-manipulation  counting  logic  code-golf  string  primes  binary  decision-problem  code-golf  ascii-art  kolmogorov-complexity  popularity-contest  code-golf  probability-theory  code-golf  string  code-golf  python  polyglot  programming-puzzle  c++  code-golf  math  code-golf  binary  integer  bitwise  code-golf  rational-numbers  code-golf  string  palindrome  code-golf  ascii-art  code-golf  code-golf  string  fibonacci  code-golf  math  sequence  code-golf  code-golf  string  palindrome  code-golf  string  code-golf  math  primes  source-layout  code-golf  sequence  binary  integer  code-golf  math  arithmetic  game  code-golf  restricted-source  palindrome  code-golf  restricted-source  palindrome  code-golf  combinatorics  binary  code-golf  string  math  code-golf  ascii-art  number  code-golf  cipher  code-golf  base-conversion  counting  code-golf  sequence  random  classification  code-golf  string  subsequence  code-golf  permutations  code-golf  string  code-golf  string  cipher  code-golf  kolmogorov-complexity  arithmetic  integer  code-golf  quine  markov-chain  code-golf  string  code-golf  code-golf  ascii-art  maze 

20
保存されたペニーはペニーです
...カウント! プログラムに、ドルおよび/またはセント単位の金額とコインの値の配列を表す変数を渡します。あなたの課題は、コードに渡される量となるコイン値の特定の配列の可能な組み合わせの数を出力することです。指定されたコインでは不可能な場合、プログラムはを返さなければなりません0。 アメリカの貨幣用語に関する注意: 1セント硬貨:ペニー 5セント硬貨:ニッケル 10セント硬貨:ダイム 25セント硬貨:四半期(四半期ドル) 例1: プログラムが合格しました: 12, [1, 5, 10] (12セント) 出力: 4 12セントを生成するために命名されたコインを結合する4つの可能な方法があります。 12ペニー 1ニッケルと7ペニー 2ニッケルと2ペニー 1ダイムと2ペニー 例2: プログラムが合格しました: 26, [1, 5, 10, 25] (26セント) 出力: 13 26セントを生成するために命名されたコインを組み合わせる13の可能な方法があります。 26ペニー 21ペニーと1ニッケル 16ペニーと2ニッケル 11ペニーと3ニッケル 6ペニーと4ニッケル 1ペニーと5ニッケル 16ペニーと1ダイム 6ペニーと2ダイム 11ペニー、1ダイム、1ニッケル 6ペニー、1ダイム、2ニッケル 1ペニー、1ダイム、3ニッケル 1ペニー、2ダイム、1ニッケル 1四半期と1ペニー 例3: プログラムが合格しました: 19, [2, 7, …

5
今日のランダムアスキーアート#5:ダイヤモンドのタイル
マッシュアップタイム! これは、私のランダムゴルフオブザデイとオプティマイザーのASCIIアートオブザデイシリーズの両方の第5回です。このチャレンジでの投稿は、両方のリーダーボードにカウントされます(リンクされた投稿を見つけることができます)。もちろん、これを他のコードゴルフチャレンジと同様に扱い、いずれかのシリーズについてまったく心配することなく答えることができます。 穴5:ダイヤモンドのタイル 通常の六角形は、常に次のようにダイヤモンドでタイル化できます。 これらのタイルのASCIIアート表現を使用します。辺の長さが2の六角形には、このようなタイルが20個あります。 ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ /\_\_\ /\_\_\ /\_\_\ /\_\_\ /_/\_\ /_/\_\ /\_\_\ /_/\_\ /_/\_\ /_/\_\ /\/\_\_\ /\/_/\_\ /\/_/_/\ /\/_/\_\ /\_\/\_\ /\_\/_/\ /\/_/_/\ /\_\/\_\ /\_\/_/\ /_/\/\_\ \/\/_/_/ \/\_\/_/ \/\_\_\/ \/_/\/_/ \/\_\/_/ \/\_\_\/ \/_/\_\/ \/_/\/_/ \/_/\_\/ \_\/\/_/ \/_/_/ \/_/_/ \/_/_/ \_\/_/ \/_/_/ …

30
3x3グリッドのすべての色を印刷する
3x3のグリッドがあります。各セルは黒または白に色を付けることができます。これらの512色すべてを表示します。最少バイトが勝ちます。 視覚的に分離され、間隔が規則的に見える限り、どのフォーメーションでもグリッドを表示できます。ASCIIアートまたは画像を使用できます。黒と白には、任意の2つの異なる可視シンボルまたは色を使用できます。結果が視覚的に正しい限り、空白は問題ありません。 出力例: ... ... ... ... ... ..X ... ... .X. ... ... .XX ... ... X.. ... ... X.X ... ... XX. ... ... XXX ... ..X ... ... ..X ..X ... ..X .X. ... ..X .XX ... ..X X.. ... ..X X.X ... ..X XX. ... ..X …

13
ユニークな素数の組み合わせ製品
問題の声明 一意の連続する素数(必ずしも2を含まない)のセットが与えられた場合、これらの素数の最初のべきのすべての組み合わせ(たとえば、繰り返しなし)と1の積を生成します。たとえば、{ 7}、{1、2、3、5、6、7、10、14、15、21、30、35、42、70、105、210}を生成します: 1 = 1 2 = 2 3 = 3 5 = 5 6 = 2 x 3 7 = 7 10 = 2 x 5 14 = 2 x 7 15 = 3 x 5 21 = 3 x 7 30 = 2 x 3 x 5 …

7
解釈> <>(魚)
&gt; &lt;&gt;は人気のある言語ではありませんが、ゴルフに適している可能性があり、このWebサイトで使用されています。Befungeに触発され、その指示にいくつかの類似点があります。 必要なコマンド: &gt; &lt; ^ v 指示ポインターの方向を変更します(右、左、上、下) / \ | _ # ミラー。ポインターは、すでに持っている方向に応じて方向を変えます。 x ランダムな方向。 + - * , % それぞれ、加算、減算、乗算、除算、モジュロ。AとBをスタックからポップし、B演算子Aをプッシュします。0で除算するとエラーが発生します。 0-9 a-f 対応する値をスタックにプッシュします。a = 10、...、f = 15 = スタックからAとBをポップし、B = Aの場合は1をプッシュし、そうでない場合は0をプッシュします。 ) より大きい。AとBをスタックからポップし、B &lt;A ( より小さい場合は1をプッシュします。AとBをスタックからポップし、B&gt; Aの場合は1をプッシュし ' " ます。文字列解析を有効にします。文字列解析は、閉じ引用符が見つかるまで、見つかったすべての文字をスタックにプッシュします。 ! 次の命令をスキップします。 ? スタックのトップがゼロの場合、またはスタックが空の場合、次の命令をスキップします。(注:これはスタックから何もポップしません!)スタック : の一番上の値を複製します。 ~ スタックから一番上の値を削除します。 …

25
Code-Golf:順列
整数のセット(リスト、配列、または個別の番号を持つ他のコンテナ)を入力として受け取り、すべての順列のリストを出力する関数を作成します。 Python(95文字): p=lambda s:s and sum(map(lambda e:map(lambda p:[e]+p,p(filter(lambda x:x!=e,s))),s),[]) or [[]] 同じ言語でbeatられたらいいのですが、他の言語での実装は大歓迎です!

8
トーラス上のサイクル
チャレンジ この課題は、次の2つの整数を取り込んでプログラム書く必要がありますnし、mそして上の番号非交差ループを出力nすることによってmで起動することによって作られたトーラス(0,0)とステップのみを取って右へを。トーラスは、上部と下部、側面の両方にラップアラウンドしたグリッドと考えることができます。 これはコードゴルフなので、バイト数が最も少なくなります。 例 たとえば、入力がの場合n=m=5、1つの有効なウォークは (0,0) -&gt; (0,1) -&gt; (0,2) -&gt; (1,2) -&gt; (2,2) -&gt; (2,3) -&gt; (2,4) -&gt; (2,0) -&gt; (3,0) -&gt; (4,0) -&gt; (4,1) -&gt; (4,2) -&gt; (4,3) -&gt; (0,3) -&gt; (1,3) -&gt; (1,4) -&gt; (1,0) -&gt; (1,1) -&gt; (2,1) -&gt; (3,1) -&gt; (3,2) -&gt; (3,3) -&gt; (3,4) …

14
これは切り捨てられた三角形の数ですか?
関連するOEISシーケンス:A008867 切り捨てられた三角数 三角形の数の一般的なプロパティは、三角形に配置できることです。たとえば、21を取り、osの三角形に配置します。 o ああ おー おおおお ああ おっと 各角から同じサイズの三角形を切り取る「切り捨て」を定義しましょう。21を切り捨てる1つの方法は次のとおりです。 。 。。 おー おおおお 。おー。 。。oo。。 (の三角形は.オリジナルからカットされます)。 o残りは12 秒なので、12は切り捨てられた三角形の番号です。 仕事 あなたの仕事は、整数を取り、数値が切り捨てられた三角形の数であるかどうかを返す(または標準出力メソッドのいずれかを使用する)プログラムまたは関数(または同等のもの)を書くことです。 ルール 標準的な抜け穴はありません。 入力は負でない整数です。 カットの辺の長さは元の三角形の半分を超えることはできません(つまり、カットは重なり合うことができません) カットの辺の長さはゼロにすることができます。 テストケース 真実: 0 1 3 6 7 10 12 15 18 19 偽物: 2 4 5 8 9 11 13 14 16 17 20 …
20 code-golf  math  decision-problem  number-theory  integer  code-golf  number  decision-problem  functional-programming  code-golf  array-manipulation  matrix  code-golf  string  classification  string  code-challenge  binary  compression  decode  code-golf  string  string  code-challenge  balanced-string  encode  code-golf  number-theory  integer  base-conversion  code-golf  math  number-theory  geometry  abstract-algebra  code-golf  array-manipulation  sorting  optimization  code-golf  math  geometry  image-processing  generation  code-golf  string  cops-and-robbers  repeated-transformation  grammars  cops-and-robbers  repeated-transformation  grammars  code-challenge  restricted-source  tips  source-layout  javascript  code-challenge  kolmogorov-complexity  restricted-source  code-golf  combinatorics  counting  math  fastest-code  linear-algebra  code-golf  math  permutations  matrix  linear-algebra  code-golf  string  decision-problem  restricted-source  code-golf  number  array-manipulation  subsequence  code-golf  number  array-manipulation  matrix  code-golf  brainfuck  code-golf  color  code-golf  quine  source-layout  code-golf  subsequence  code-golf  string  ascii-art  code-golf  string  ascii-art  alphabet  code-golf  decision-problem  interpreter  hexagonal-grid  halting-problem  code-golf  string  polynomials  calculus  code-golf  math  decision-problem  matrix  complex-numbers  code-golf  random  code-golf  number  arithmetic 

9
カードゲームの手のパターン
カードのデッキは、SスーツとRランクのデカルト積です。すべてではありませんが、多くのカードゲームがとを使用S=4していR∊{6,8,13}ます。Hカードの手はデッキから配られます。その分布(別名「ハンドパターン」)は、各スーツから獲得したカードの数を記述する配列で、スーツの順序を無視します(つまり、マルチセットのようなものです)。分布を考えるとD満足len(D)=S、1≤sum(D)=H≤S×R、0≤D[i]≤R、D[i]≥D[i+1]、それが発生する確率を見つけます。 入力:整数Rと配列D。 出力:小数点以下5桁以上の確率。末尾のゼロはスキップされます。科学表記は大丈夫です。 抜け穴は禁止されています。最短勝。 テスト: R D probability 13 4 4 3 2 -&gt; 0.2155117564516334148528314355068773 13 5 3 3 2 -&gt; 0.1551684646451760586940386335649517 13 9 3 1 0 -&gt; 0.0001004716813294328274372174524508 13 13 0 0 0 -&gt; 0.0000000000062990780897964308603403 8 3 2 2 1 -&gt; 0.4007096203759162602321667950144035 8 4 2 1 1 -&gt; 0.1431105787056843786543452839337155 …

8
リストをピックフラット化する
ネストされたリストを「ピッキング」するプロセスを検討してください。ピッキングは次のように定義されます。 引数がリストの場合、リストから要素をランダムに(均一に)取り出し、そこから選択します。 引数がリストではない場合、単にそれを返します。 Pythonでの実装例: import random def pick(obj): if isinstance(obj, list): return pick(random.choice(obj)) else: return obj 簡単にするために、ネストされたリストには整数またはさらにネストされたリストのみが含まれると仮定します。 任意のリストが与えられた場合、で区別できないフラット化されたバージョンを作成することができますpick。つまり、リストから選択すると、同じ確率で同じ結果が得られます。 たとえば、リストを「ピックフラット化」 [1, 2, [3, 4, 5]] リストを生成します [1, 1, 1, 2, 2, 2, 3, 4, 5] 。単純な平坦化が無効である理由は、サブリストの要素が選択される確率が低いためです。たとえば、リストで[1, [2, 3]]は1が2/4 = 1/2の確率で選択され、3と4は両方とも1/4チャンスそれぞれ。 また、シングルトンリストからの選択はその要素からの選択と同等であり、空のリストからの選択には意味がないことに注意してください。 チャレンジ 非負整数のネストされたリストを指定すると、非負整数のフラット化されたリストを返します。このリストから、同じ確率で同じ結果が得られます。 これはcode-golfなので、最短の有効な回答(バイト単位で測定)が勝ちます。 仕様書 入力は[2, 3, 4]、[2, 2, 2, 2, …

3
ラフティングの問題(ナップザックバリアント)
私からの最初のパズル、改善の提案を喜んで受け取った! シナリオは次のとおりです。あなたは急流ラフティング会社のマネージャーとして働いています。毎朝、予約のリストが表示され、ラフトロードに並べ替える必要があります。選択した言語でこれを行うプログラムまたは関数を作成します。 各ラフトには最大数のnクライアントが収容され、各予約は1 n人以上のグループ(包括的)です。次のルールを順守する必要があります。 グループを分割することはできません。一緒に予約した場合、全員が同じラフトにいなければなりません。 いかだの数は最小限に抑える必要があります。 上記の2つの規則に従って、グループはいかだの間で可能な限り均等に広げられなければなりません。 入力。 番号n(これは正の整数であると想定できます)、およびすべての予約のサイズ。言語がそのようなことをサポートしている場合、これは配列、リスト、または同様のデータ構造になります。これらはすべて1〜の正の整数になりnます。予約の順序は定義されておらず、重要でもありません。 出力。 いかだ積み荷にグループ化された予約番号のリスト。次のように、グループ化を明確に示す必要があります。 リスト、または配列の配列。 いかだごとのコンマ区切りリスト。各ラフト間の改行。 3番目のルールをどのように実装するかはユーザー次第ですが、これには、いかだの平均占有率を見つけ、それから可能な限り逸脱を最小限に抑えることが含まれます。ここにいくつかのテストケースがあります。 n Bookings Output 6 [2,5] [5],[2] 4 [1,1,1,1,1] [1,1,1],[1,1] 6 [2,3,2] [2,2],[3] 6 [2,3,2,3] [2,3],[2,3] 6 [2,3,2,3,2] [2,2,2],[3,3] 12 [10,8,6,4,2] [10],[8,2],[6,4] 6 [4,4,4] [4],[4],[4] 12 [12,7,6,6] [12],[7],[6,6] 標準ルールが適用され、最短のコードが優先されます。楽しむ! 編集済み; 3番目のルールを可能な限り均等に定義するための提案された方法。 いかだの数rが決定されると(2番目の規則に従い)、a予約を合計し、で割ることで平均占有率を計算できますr。各ラフトについて、を使用して平均占有率からの偏差を見つけることができますd(x) = abs(n(x)-a)。ここn(x)で、は各ラフトとの人数です1 &lt;= x &lt;= …

2
トランジスタの組み合わせ
ビデオゲームのトランジスターは非常に興味深い能力システムを備えています。16の異なるスロットで使用できる16の「機能」を収集します。おもしろいのは、3種類のスロットがあり、どのスロットで使用するかによってすべての関数の動作が異なることです。 4つのパッシブスロットがあります。 4つのアクティブスロットがあります。 各アクティブスロットには2つのアップグレードスロットがあります。 私たちが提供するスキルセットの数を把握したいと思います。 ただし、一部の組み合わせは同等です。特に、スロットのこれらの各グループ内では、関数の特定の位置は重要ではありません。一方、アップグレードスロットで機能の効果はない親アクティブスロットで使用される特定の機能に依存します。 したがって、16進数を使用して関数を表す場合、次の組み合わせはすべて同等です。 Passive Slots: 0 1 2 3 Active Slots: 4 5 6 7 Upgrade Slots: 8 9 A B C D E F Passive Slots: 2 0 1 3 # Permutation of passive slots. Active Slots: 4 5 6 7 Upgrade Slots: 8 9 …

2
棒の鎖でポリオミノを形成する
バックグラウンド それぞれが整数の長さを持つロッドの(閉じた)チェーンを考えてみましょう。特定のチェーンでいくつの穴のないポリオミノを形成できますか?または、言い換えれば、特定のチェーンを使用して、軸に沿った辺を持つ、いくつの異なる非自己交差ポリゴンを形成できますか? 例を見てみましょう。長さ1と2の8本の棒で構成される特定のチェーンを考えてみましょう[1, 1, 2, 2, 1, 1, 2, 2]。回転と移動まで、可能なポリオミノは8つだけです(異なる反射をカウントします): この最初の棒は濃い青色であり、それから反時計回りに多角形を横断します。 上記の例では、回転の感覚は結果に影響しません。しかし[3, 1, 1, 1, 2, 1, 1]、次の3つのポリオミノを生成する別のチェーンを考えてみましょう。 時計回りのトラバースを必要とするため、最後のポリオミノのリフレクションが含まれていないことに注意してください。 同じ長さのより柔軟なチェーンがあれば[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]、実際には他のいくつかのポリオノイノの間で両方の反射を形成することができ、合計9になります。 チャレンジ チェーンの説明を配列または類似のものとして、ロッドを順番に使用して反時計回りに周回しながら形成できる個別のポリオミノの数(回転と平行移動まで)を決定します。 完全なプログラムを作成し、コマンドラインからコードをコンパイルして(該当する場合)実行するコマンドを含めてください。ご使用の言語の無料のコンパイラ/通訳へのリンクも含めてください。 プログラムは、STDINからの入力を読み取る必要があります。最初の行には整数Mが含まれます。次のM行はテストケースで、各行はスペースで区切られたロッドの長さのリストです。プログラムは、M行をSTDOUTに出力する必要があります。各行は、単一の整数(形成可能な個別のポリオミノの数)で構成されます。 単一のスレッドのみを使用する必要があります。 プログラムは、常に1 GBを超えるメモリを使用しないでください。(これは完全に厳密な制限ではありませんが、実行可能ファイルのメモリ使用量を監視し、1 GBを常に使用するプロセス、またはそれを大幅に超えるプロセスを強制終了します。) 過剰な事前計算を防ぐために、コードは20,000バイトを超えてはならず、ファイルを読み取ってはなりません。 また、選択した特定のテストケースに向けて最適化しないでください(結果をハードコーディングするなど)。疑わしい場合は、新しいベンチマークセットを生成する権利を留保します。テストセットはランダムなので、それらのプログラムのパフォーマンスは、任意の入力でのパフォーマンスを代表するものでなければなりません。許可される唯一の仮定は、ロッドの長さの合計が偶数であるということです。 得点 N = 10、11、...、20ロッドのチェーンのベンチマークセットを提供しました。各テストセットには、長さが1〜4のランダムチェーンが50個含まれています。 プライマリスコアは、プログラムが5分以内にテストセット全体を完了する最大のNです(私のマシンでは、Windows 8で)。タイブレーカーは、そのテストセットでプログラムが実際にかかった時間です。 誰でも最大のテストセットに勝った場合、私はより大きなテストセットを追加し続けます。 テストケース 次のテストケースを使用して、実装の正確性を確認できます。 Input Output …

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