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

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

20
数字を分解してください!
あなたの仕事は、以下の形式を使用して数値を分解することです。 これはベース変換に似ていdigitsますが、ベースにリストする代わりに、リストをvalues入力に追加するようにリストします。 指定されたベースがの場合、nリスト内の各数値はの形式である必要があります。k*(n**m)ここで0<=k<nおよびmはリスト全体で一意です。 スペック 合理的な入力/出力フォーマット。プログラム/関数は2つの入力を受け取り、リストを出力します。 出力リストの順序は任意です。 0 除外または含めることができます。 リード0は許可されます。 組み込みが許可されます。 テストケース number base converted list input1 input2 output 123456 10 [100000,20000,3000,400,50,6] or [6,50,400,3000,20000,100000] 11 2 [8,2,1] or [0,0,0,0,8,0,2,1] 727 20 [400,320,7] 101 10 [100,1] or [100,0,1] 得点 これはcode-golfです。バイト単位の最短ソリューションが優先されます。
16 code-golf  number  sequence  number-theory  base-conversion  code-golf  bitwise  hashing  code-golf  string  ascii-art  whitespace  code-golf  math  code-golf  code-golf  image-processing  counting  code-golf  math  arithmetic  checksum  code-golf  code-golf  math  arithmetic  number-theory  code-golf  array-manipulation  random  code-golf  string  code-golf  math  ascii-art  base-conversion  code-golf  graphical-output  geometry  3d  code-golf  math  linear-algebra  matrix  code-golf  math  number  sequence  code-golf  array-manipulation  code-golf  math  matrix  linear-algebra  code-golf  number  sequence  counting  code-golf  string  code-golf  string  restricted-source  quine  sorting  code-golf  string  geometry  code-golf  string  code-golf  networking  code-golf  base-conversion  code-golf  math  matrix  code-golf  arithmetic  linear-algebra  matrix  code-golf  number  arithmetic  grid  code-golf  number  source-layout  code-golf  string  bitwise  checksum  code-golf  array-manipulation  code-golf  string  probability-theory  code-golf  tips  code-golf  sequence  code-golf  string  math  sequence  calculus  code-golf  string  palindrome  bioinformatics  code-golf  math  combinatorics  counting  permutations  code-golf  parsing  logic-gates  code-golf  arithmetic  number-theory  combinatorics  code-golf  math  sequence  polynomials  integer  code-golf  string  ascii-art  chess  code-golf  string  code-golf  number  code-golf  string  ascii-art  parsing  code-golf  code-golf  number  natural-language  conversion  code-golf  arithmetic  code-golf  string  code-golf  ascii-art  decision-problem 

8
山脈の範囲を描く
フィボナッチドミノタイルに触発され、この問題は、別の有名な組み合わせシーケンスを表すASCIIアートの生成に関するものです。 N段山図は正確に使用して、山脈の図であるN「/」とN「\」文字は、その最初の「高度」の下ディップ決して連続曲線をスケッチするように文字、。例えば、 /\/\ /\/ \ そして /\ /\/ \/\ どちらも4段階の山の図ですが、 /\ /\/\ \/ ではありません。 入力 プログラムは、stdinからの整数nを受け入れるか、関数のパラメーターとして受け入れる必要があります。 出力 すべてのnステップ山図を標準出力に出力します。図の順序は任意ですが、何らかの種類の空白で区切る必要があります。異なる図を水平、垂直などに出力するかどうかを決定できます。 ドミノタイルの問題と同様に、任意の空白を使用できます。これには、印刷出力の前後の余分な改行が含まれます。 例 n = 3の有効な出力のサンプル: 有効な出力A: /\ /\ /\ / \ /\/\ /\/\/\ / \/\ /\/ \ / \ / \ 有効な出力B: /\ /\/ \ /\/\ / \ /\/\/\ /\ / \ …

4
ASCIIアートで長い分割を視覚化する
ASCIIアートで長い除算を視覚化するプログラムを作成します。入力は、選択した入力形式を使用して、分子と分母の2つの整数で構成されます。 例: 1234÷56: 22 ---- 56|1234 112 --- 114 112 --- 2 1002012÷12: 83501 ------- 12|1002012 96 --- 42 36 -- 60 60 -- 12 12 -- 0÷35 0 - 35|0 ルール: プログラミング言語の除算演算子の使用は許可されています。 大きな整数のサポートの使用も許可されています。 一貫性のために: 商がゼロの場合、ダイビングボードの最後にゼロを1つ出力します。 余りがゼロの場合、印刷しないでください。 数字に先行ゼロを印刷しないでください。 末尾の余分な改行と右側の末尾のスペースは許可されます。 最小の文字数のソリューションが勝ちです。 制限: 0 <=分子<= 10 72 - 1 1 <=分母<= 9999999 …

7
振動の平等
on [l, r]から始まる、時間単位ごとに1単位の速度で、2つの整数点間で振動するオブジェクトがあります。あなたが仮定することができます。たとえば、オブジェクトがで振動する場合、次のようになります。lt=0l < r[3, 6] t=0 -> 3 t=1 -> 4 t=2 -> 5 t=3 -> 6 t=4 -> 5 t=6 -> 4 t=7 -> 3 t=8 -> 4 しかし、オブジェクトは継続的に振動するため、ともt=0.5 -> 3.5ありt=3.7 -> 5.3ます。 、の間[l1, r1]で振動する2つのオブジェクトが与えられた[l2, r2]場合t、2つのオブジェクトが同じ位置を共有するような時間が存在するかどうかを判断します。l1, r1, l2, r2任意の便利な形式でテイクを作成し、真実/偽の値を出力します。 真実の入力: [[3, 6], [3, 6]] [[3, 6], [4, 8]] …
15 code-golf  array-manipulation  decision-problem  code-golf  math  number-theory  palindrome  integer-partitions  code-golf  math  decision-problem  geometry  code-golf  string  random  code-golf  ascii-art  code-golf  kolmogorov-complexity  primes  code-golf  kolmogorov-complexity  code-golf  graphical-output  code-golf  number-theory  primes  integer  factoring  code-golf  sequence  array-manipulation  integer  code-golf  array-manipulation  matrix  code-golf  sequence  binary  code-golf  game  cellular-automata  game-of-life  binary-matrix  code-golf  string  ascii-art  code-golf  random  generation  logic  code-golf  string  code-golf  code-golf  sequence  array-manipulation  random  apl  code-golf  code-golf  sequence  primes  code-golf  math  sequence  integer  code-golf  number  arithmetic  array-manipulation  decision-problem  code-golf  ascii-art  number  code-golf  restricted-source  quine  code-golf  chess  board-game  code-golf  math  sequence  code-golf  number  sequence  kolmogorov-complexity  code-golf  number  sequence  arithmetic  code-golf  math  number  alphabet  code-golf  ascii-art  classification  statistics  apl  code-golf  array-manipulation  matrix  code-golf  string  kolmogorov-complexity  code-golf  sequence  binary  base-conversion  binary-matrix  code-golf  string  classification  code-golf  tips  python  code-golf  combinatorics  binary  subsequence  restricted-time  code-golf  number  number-theory  code-golf  math  number  complex-numbers  code-golf  string  code-golf  string  code-golf  string  random  game  king-of-the-hill  python  code-golf  number  sequence  code-golf  number  sequence  code-golf  code-golf  math  number  array-manipulation  code-golf  array-manipulation  decision-problem  code-golf  string  code-golf  sequence  integer 

30
Parrotプログラムを作成する
入力が与えられると、その入力の後に改行が際限なく続きます。 入力は、印刷可能なASCII文字(0x20-0x7E)と改行(0x0A)のみで構成される文字列になります。 入力の長さが0の場合、改行を無限に出力します。 これはコードゴルフなので、各言語で最も少ないバイトです勝ちます!
15 code-golf  string  sequence  combinatorics  fastest-code  number  code-challenge  restricted-source  rosetta-stone  code-golf  arithmetic  decision-problem  integer  factorial  code-golf  arithmetic  decision-problem  integer  bitwise  code-golf  kolmogorov-complexity  code-golf  tips  vim  code-golf  quine  code-generation  code-golf  string  restricted-source  code-golf  string  random  unicode  code-golf  audio  code-golf  ascii-art  code-golf  decision-problem  code-golf  puzzle-solver  code-golf  restricted-source  code-golf  kolmogorov-complexity  permutations  hexagonal-grid  code-golf  string  math  combinatorics  fastest-code  code-golf  restricted-source  code-golf  string  code-golf  arithmetic  code-golf  math  number  code-golf  string  decision-problem  balanced-string  code-golf  binary  code-golf  string  number  code-challenge  restricted-source  code-golf  ascii-art  printable-ascii  interactive  code-golf  string  ascii-art  code-challenge  restricted-source  source-layout  code-golf  arithmetic  tips  functional-programming  golfing-language  code-golf  binary  encryption 

3
Dobble / SpotItカードジェネレーター
前書き Dobble / SpotItは、最短時間でペアのカードに同じシンボルを見つけ、それを示し、次のペアに移動するカードゲームです。各カードには複数のシンボル(通常バージョンでは8)がありますが、各ペアのカード間で正確に1つのシンボルが共通しています。 ゲームの物理コピーの例: チャレンジ 単一のカードに一連の記号(単一のASCII文字)と記号の数を指定して、各カードの記号を含む出力リストカードを作成するプログラムを作成します。明らかに多くの同等の組み合わせがあります。プログラムは、指定された入力に対して最大量のカードを生成する組み合わせのいずれかを記述する必要があります。 それはコードゴルフですので、コードが短いほど良いです。 最も複雑なケースで、宇宙の熱死の前に計算が終了することも素晴らしいことです。 入力 function / stdinへの2つの引数(選択) それらの最初は、 'ABCDE'や['A'、 'B'、 'C​​'、 'D'、 'E']のようなシンボルのコレクションです-あなたが選択したフォーマット、文字列、セット、リスト、ストリーム、または選択した言語の慣用的なもの。文字は[A-Za-z0-9]のセットから与えられ、重複はありません(したがって、入力シンボルセットの最大サイズは62です)。これらは必ずしも順序付けられません( 6シンボルの場合にも「yX4i9A」を取得できます)。 2番目の引数は整数で、単一のカードのシンボルの量を示します。シンボルセットのサイズよりも<=になります。 出力 改行で区切られた複数の行を印刷します。各行には単一のカードのシンボルが含まれます。 例 ABC 2 >>>> AB BC AC または ABCDEFG 3 >>>> ABC BDE CEF BFG AEG CDG ADF または ABCDE 4 >>>> ABCD ヒント 作成されるカードの数は、個別のシンボルの量より多くすることはできません。多くの組み合わせでは、かなり小さくなります 問題の数学の側面で助けが必要な場合は、いくつかの数学の背景を読みたいかもしれません これは私の最初のコードゴルフチャレンジですので、フォーマット/スタイルに関する問題の可能性をご容赦ください-コメントで指摘した場合は、エラーを修正しようとします。

1
同色の算術級数
ファンデルワーデンの定理によると 与えられた正の整数rとkに対してN、整数{1, 2, ..., N}がそれぞれr 異なる色のいずれかで色付けされている場合、kすべて同じ色の算術級数で少なくとも整数があるような数があります。最小のものNは、ファン・デル・ワーデン数W(r, k)です。 あなたの目標は、W(r, k)正の整数入力rとを与えられたファンデルワーデン数を計算することkです。少ないバイトが勝ちます。 この関数は非常に急速に成長し、計算に時間がかかることに注意してください。でもW(4, 4)不明です。無制限のリソース(時間、メモリ、スタックの深さなど)を備えた理想的なコンピューターでコードを実行すると想定できます。あなたのコードは理論的には答えが分からない値に対しても正しい答えを与えなければなりません。 この関数を計算する組み込み関数は許可されていません。 例 ためのr = 2色と長さの進行k = 3、長さ-が存在する8ような進行を回避する配列、すなわち3同じ色の等間隔の要素: B R R B B R R B しかし、そのような長さの9シーケンスはありませんW(2, 3) == 9。例えば、 R B B R B R R B R ^ ^ ^ 表示されている長さ3と同色の算術級数が含まれています。 テストケース おそらく、小さなケースのみをテストできます。 +-----+-----+-----+-----+-----+-----+------+ | | k=1 | …

3
スタックベースの言語をトークン化する
私は、に取り組んできた別のと呼ばれるスタックベースのゴルフの言語Stackgoat。この課題では、Stackgoat(または実際には一般的なスタックベースの言語)のTokenizerを作成します。 例 "PPCG"23+ ["PPCG", '23', '+'] 'a "bc" + ['"a"', '"bc"', '+'] 12 34+-"abc\"de'fg\\" ['12', '34', '+', '-', '"abc\"de'fg\\"'] "foo ['"foo"'] (empty input) [] ' "" ['" "', '""'] 仕様 処理する必要がある3つのタイプは次のとおりです。 ストリングス、何も内"" 数字、数字列 演算子、空白以外の任意の単一文字 空白は、文字列内にあるか、2つの数値を区切っていない限り、本質的に無視されます。 文字列/文字仕様: 文字列はで区切られ、が検出された"場合\、次の文字をエスケープする必要があります。 '文字はa で始まり、その後の'文字は文字列リテラルに変換されます。'a->"a" ' 常にその後に文字があります 終値を自動挿入する必要があります ルール: の形式evalは許可されません 入出力: 入力は、STDIN、関数パラメーター、または同等の言語を通じて取得できます。 出力は、配列または言語に最も近いものでなければなりません。
15 code-golf  parsing  code-golf  hexagonal-grid  code-golf  string  code-golf  string  code-golf  combinatorics  code-golf  ascii-art  code-golf  string  game  counting  code-golf  arithmetic  complex-numbers  code-golf  string  code-golf  decision-problem  hexagonal-grid  code-golf  string  sequence  code-golf  number  arithmetic  code-golf  ascii-art  code-golf  ascii-art  code-golf  string  arithmetic  code-golf  number  simulation  code-golf  number  arithmetic  code-golf  string  sequence  unicode  code-golf  string  ascii-art  balanced-string  code-golf  number  clock  code-golf  ascii-art  number  code-golf  math  number  sequence  code-golf  string  ascii-art  balanced-string  code-golf  math  string  popularity-contest  graphical-output  image-processing  code-golf  string  permutations  code-golf  string  code-golf  random  code-golf  string  cryptography  palindrome  code-golf  chess  code-golf  math  array-manipulation  topology  code-golf  math  sequence  code-golf  keyboard  classification  code-golf  string  sequence  code-golf  natural-language  code-golf  math  number  sequence  sorting  code-golf  sequence  combinatorics  grid  tic-tac-toe  code-golf  geometry  code-golf  number  restricted-source  new-years  expression-building 

8
正確にnになる合計数の最小数
ここでの最初の質問は、これが重複するのか悪い挑戦なのかを私に怒鳴らないでください。 前書き 私はこの挑戦を自分で考えましたが、初心者のコード愛好家には良い基本的なパズルのようです。また、学習するコードゴルフ言語を決定するのに役立つかもしれません。 チャレンジ 以下の整数の配列が与えられた場合、n正確に合計する配列からの最小数の数値を出力または返しnます。 関数を書くか、完全なプログラムを書くかを選択できます。 入力 あなたは安全に仮定することができ0 <= n < 2^31ます。 任意の種類の配列またはリスト(vectorC ++またはJava LinkedListが許可されている場合)と、配列の長さを指定nするオプションのパラメーターを取りますlength。 入力はn、コンマまたはスペースで区切られたスペースで区切られた文字列として受け取ることもできます。 1 5 7 3 7 3 6 3 2 6 3,10 1 5 7 3 7 3 6 3 2 6 3 10 それが簡単な場合。 出力 出力するか、正確に合計する配列の最小数を返しnます。上記の例を使用します。 1 5 7 3 7 3 6 3 …

11
和のセットを見つける
このサイトを読んで楽しんできました。これが私の最初の質問です。編集は大歓迎です。 正の整数を考えると、NとMのすべての注文のパーティション計算メートルを正確にn個の部品の正の整数部分、およびそれらを印刷には、カンマと改行で区切られました。どの順序でも構いませんが、各パーティションは1回だけ表示される必要があります。 たとえば、m = 6およびn = 2の場合、可能なパーティションは正の整数のペアであり、合計は6になります。 1,5 2,4 3,3 4,2 5,1 [1,5]と[5,1]は異なる順序のパーティションであることに注意してください。出力は正確に上記の形式で、オプションの末尾の改行が必要です。(編集:パーティションの正確な順序は関係ありません)。入力/出力を介している標準コード-ゴルフI / O。 m = 7、n = 3の別の出力例: 1,1,5 1,2,4 2,1,4 1,3,3 2,2,3 3,1,3 1,4,2 2,3,2 3,2,2 4,1,2 1,5,1 2,4,1 3,3,1 4,2,1 5,1,1 1週間後のバイト単位の最小コードが勝ちます。 繰り返しますが、必要に応じて編集してください。 補遺: @TimmyDは、プログラムがサポートする整数入力のサイズを尋ねました。例以外にハードミニマムはありません。実際、出力サイズは指数関数的に増加し、おおよそ次のようにモデル化されます:lines = e ^(0.6282 n-1.8273)。 n | m | lines of output …

4
40本のスティックを注文する
幅が同じで高さが異なる40本のスティックがあります。右から見ると10本のスティックが見え、左から見ると再び10本のスティックが見えるように、それらを並べて配置できる配置はいくつありますか? たとえば、このような順序は次のとおりです。 黒い棒は隠れており、赤い棒は左から見たときに見ることができるものであり、青い棒は右から見たときに見ることができるものであり、紫色のもの(つまり最も長いもの)は見ることができるものです両側から。 テストケースとして: 左から2つ、右から2つを見るために3スティックの注文数がある場合は2 5本のスティックがある場合、左から3つ、右から3つを見るための注文数は6です。 10スティックの場合、左から4つ、右から4つを見るための注文数は90720です。

6
順列をサイクルに分解する
順列はサイクルのセットに分解できるというよく知られた定理があります。あなたの仕事は、できる限り短いプログラムを書くことです。 入力: 2行。最初は数値を含みN、2番目はN範囲内の異なる整数を含みます[0,N-1]スペースで区切られれます。これらの整数は、N要素の順列を表します。 出力: 順列の各サイクルに1行。各行は、スペースで区切られた整数のサイクル順のリストである必要があります。 サイクルは任意の順序で出力でき、各サイクルは任意の位置から出力できます。 例1: 8 2 3 4 5 6 7 0 1 この入力は、順列0-> 2、1-> 3、2-> 4、3-> 5、4-> 6、5-> 7、6-> 0、7-> 1をエンコードします。これは、次のようなサイクルに分解されます。 0 2 4 6 1 3 5 7 同様に有効な出力は 5 7 1 3 2 4 6 0 例2: 8 0 1 3 4 5 6 …

5
バイナリ畳み込み
バイナリ畳み込みは数値Mで記述され、数値に適用されNます。のバイナリ表現の各ビットについてM、ビットが設定されている場合(1)、出力の対応するビットは、対応するビットに隣接する2ビットをXORすることで与えられますN(必要に応じて折り返します)。ビットが設定されていない場合(0)、出力の対応するビットはの対応するビットによって与えられNます。 実用的な例(8ビット値): ましょうN = 150、M = 59。それらのバイナリ表現は(それぞれ)10010110と00111011です。 Mのバイナリ表現に基づいて、ビット0、1、3、4、および5が畳み込まれます。 ビット0の結果は、ビット1と7をXORすることで得られ1ます(折り返すため)。 ビット1の結果は、ビット0と2のXOR演算によって得られ0ます。 ビット2の結果は、元のビット2で与えられ、を生成し1ます。 ビット3の結果は、ビット2と4のXORによって得られ0ます。 ビット4の結果は、ビット3と5のXOR演算によって得られ0ます。 ビット5の結果は、ビット4と6のXORによって得られ1ます。 ビット6と7の結果は、元のビット6と7で与えられ、とを生成0し1ます。 したがって、出力は10100110(166)です。 チャレンジ とが与えられたときN、on Mによって記述されたバイナリ畳み込みを実行した結果を出力しMますN。入力および出力は、便利で一貫性があり、明確な形式である場合があります。Nそして、M常に(包括的)範囲[0, 255](8ビット符号なし整数)にあり、バイナリ畳み込みを実行するために、バイナリ表現を8ビットにパディングする必要があります。 テストケース 150 59 -> 166 242 209 -> 178 1 17 -> 0 189 139 -> 181 215 104 -> 215 79 214 -> 25 190 207 -> 50 61 …
15 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 

3
順列グループ操作
n個の要素と0からn!-1までの数字の順列の間には、順列と対応する数字の辞書式順序が同じになるように、よく知られた全単射があります。たとえば、n = 3の場合: 0 <-> (0, 1, 2) 1 <-> (0, 2, 1) 2 <-> (1, 0, 2) 3 <-> (1, 2, 0) 4 <-> (2, 0, 1) 5 <-> (2, 1, 0) n個の要素の順列がグループ(n次の対称グループ!)を形成することもよく知られています-したがって、特に、n個の要素の1つの順列がn個の要素の2番目の順列に適用されると、n個の要素の順列が生成されます。 たとえば、(a、b、c)に(1、0、2)を適用すると(b、a、c)が得られるため、(1、0、2)を(2、1、0)に適用すると(1、2 、0)。 n、p1、およびp2の3つの整数引数を取るプログラムを作成します。p1とp2をn個の要素の順列として解釈します。1番目を2番目に適用します。対応する整数を出力します。例えば: $ ./perm.sh 3 2 5 3

8
乱れた再配置
あなたの仕事は、行に分割される(改行文字で分割される)ときに、行のすべての配置が1からnの間の異なる数を出力するようにコンピュータープログラムを書くことです!(nは行の総数です)。2つの異なる配置で数値を出力することはできません。すべての配置でこの範囲の数値を出力する必要があります。nがあるので!プログラムの行を配置する方法。これは、各番号が1回の再配置で出力されることを意味します。 たとえば、Pythonプログラム print 1;""" print 2;""" 2つの取り決めがあります print 1;""" print 2;""" そして print 2;""" print 1;""" 最初の出力1と2番目の出力2。 使用している言語の標準である出力形式を使用できます。なんらかのボイラープレートを想定してはいけません。言語が主張している形式を回避する必要がある場合、この課題はより興味深いと思います。 得点 スコアはプログラムの行数になり、スコアが高いほど良くなります。あなたは、出力番号に選択することが0にn個!-1あなたが好きならば。

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