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

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

30
パスカルの三角形を生成する
パスカルの三角形は、最初の行の1から開始して生成されます。後続の行では、数値は、そのすぐ上の左右の2つの数値の合計によって決定されます。 デモンストレーションのために、Pascalの三角形の最初の5行は次のとおりです。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 チャレンジ 入力n(ただし、選択した言語で最も便利な場合)を指定すると、Pascalの三角形の最初のn行が生成されます。nは1から25までの整数であると仮定できます。各行と各番号の間には改行が必要ですが、それ以外に、好きなようにフォーマットできます。 これはcode-golfであるため、最短のソリューションが優先されます。 I / Oの例 > 1 1 > 9 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 …

9
「ソート」アルゴリズム
スターリンソートとも呼ばれる「ソートアルゴリズム」があり、リストをソートするには、リストが昇順にソートされるまでリストから要素を削除するだけです。たとえば、リスト [1, 2, 4, 5, 3, 6, 6] スターリンの並べ替えを使用して「並べ替え」が行われる場合 [1, 2, 4, 5, 6, 6] 3つは故障していたため削除されました。 当然、要素を削除してリストをソートする方法はたくさんあります。たとえば、要素が2つ未満のリストは並べ替える必要があります。そのため、盲目的に十分な要素を削除するだけで、常にリストを並べ替えることができます。これが事実であるため、スターリンの並べ替えから可能な限り長い結果のみを考慮します。 あなたの仕事は、正の整数のリストを取得し、元のリストから要素を削除することで到達できる最長のソートされた(増加する)リストの長さを出力することです。それは、最長のソートされた(おそらく不連続な)サブリストの長さを見つけることです。 ソートされたリストは、同じ要素を連続して複数回持つことができます。プログラム自体が空でない限り、空のリストをサポートする必要はありません。 得点 あなたの答えは、スターリンの可能な限り最長のソートの長さによって採点されます。プログラムは文字ではなくバイトのシーケンスとして解釈され、その順序はバイトを数字として解釈することによって生じる自然な順序になります。スコアが低いほど優れています。 これはコードゴルフではありません ここだきちんと-Oツール、あなたの答えを得点を支援します。 テストケース [1, 2, 4, 5, 3, 6, 6] -> 6 [19, 2] -> 1 [3, 3, 4, 3] -> 3 [10] -> 1 [1, 2, 4, 9] …

24
この番号はレーシアンですか?
正の整数kは、次の場合、レーシアン数です。 ki*i + j*j + i*jfor i、j整数として表現できます。 たとえば、最初の正のロジアン数は次のとおりです。1(i=1、j=0); 3(i=j=1); 4(i=2、j=0); 7(i=2、j=1); 9(i=-3、j=3); ... は、特定のに対して一意ではないことiに注意してください。例えば、も用いて生成することができます、。jk9i=3j=0 これらの数値の他の同等の特性は次のとおりです。 k表すことができるi*i + j*j + i*jためi、j負でない整数。(整数の各ペアについてi、j同じを与える非負整数のペアがありますk) k六角形のグリッド上でテッセレーションを形成する一連の連続した六角形があります(k = 4およびの図を参照k = 7)。(この特性のため、これらの数値はモバイルセルラー通信ネットワークに適用されます。) シーケンスのOEISページでその他の特性を参照してください。 チャレンジ 正の整数が与えられた場合、それがレーシアン数であれば真の結果を出力し、そうでなければ偽の結果を出力します。 プログラムまたは関数は1000、データ型の制限まで、または1分未満で入力を処理する必要があります。 コードゴルフ。最短勝。 テストケース 次の数値は、真の結果を出力するはずです。 1, 4, 7, 12, 13, 108, 109, 192, 516, 999 次の数値は偽の結果を出力するはずです。 2, 5, 10, 42, 101, 102, 128, …
33 code-golf  math  number  number-theory  decision-problem  code-golf  kolmogorov-complexity  code-golf  sequence  code-golf  path-finding  chess  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  math  arithmetic  code-golf  code-golf  number  code-golf  geometry  code-golf  math  code-golf  code-golf  kolmogorov-complexity  alphabet  code-golf  regular-expression  hexagonal-grid  king-of-the-hill  path-finding  java  code-golf  string  sorting  code-golf  string  grid  code-challenge  compression  code-golf  random  code-golf  sequence  arithmetic  code-golf  number  grid  tiling  code-golf  tips  code-golf  sequence  number-theory  recursion  code-golf  string  grid  code-golf  math  number  combinatorics  permutations  string  code-challenge  code-golf  sequence  number-theory  subsequence 

29
プレフィックスコードですか?
情報理論では、「プレフィックスコード」とは、どのキーも別のキーのプレフィックスではない辞書です。言い換えれば、これは、文字列が他の文字列で始まらないことを意味します。 たとえば、{"9", "55"}はプレフィックスコードですが、そうで{"5", "9", "55"}はありません。 これの最大の利点は、エンコードされたテキストを区切り文字なしで書き留めることができ、一意に解読できることです。これは、常に最適なプレフィックスコードを生成するHuffmanコーディングなどの圧縮アルゴリズムに現れます。 タスクは簡単です。文字列のリストが与えられたら、それが有効なプレフィックスコードかどうかを判断します。 あなたの入力: 妥当な形式の文字列のリストになります。 印刷可能なASCII文字列のみが含まれます。 空の文字列は含まれません。 出力は、真/偽の値になります。有効なプレフィックスコードの場合はTruthy、そうでない場合はfalseyです。 真のテストケースを次に示します。 ["Hello", "World"] ["Code", "Golf", "Is", "Cool"] ["1", "2", "3", "4", "5"] ["This", "test", "case", "is", "true"] ["111", "010", "000", "1101", "1010", "1000", "0111", "0010", "1011", "0110", "11001", "00110", "10011", "11000", "00111", "10010"] いくつかの誤ったテストケースを次に示します。 ["4", "42"] ["1", "2", …

23
配電盤のブルートフォース
先日、私たちのチームは脱出室に行きました。パズルの1つには、6つの機械式スイッチのボードが含まれており、ボックスのロックを解除するには、次のような正しいオンとオフの組み合わせを見つける必要がありました。 -v-v-v- -v-v-v- 開発者である私たちは、実際にパズルを解くよりも2 ^ 6 = 64の組み合わせを1つずつ試す方が効率的だと判断しました。そこで、貧しい人にバイナリカウントを割り当てました。 -v-v-v- -v-v-v- -v-v-v- -v-v-^- -v-v-v- -v-^-v- -v-v-v- -v-^-^- 等々。 課題は 、上記のようにフォーマットされた文字列として位置オフのスイッチ全てが与えられると、そのプログラムを書いて、任意の順序でオンとオフのすべての組み合わせを生成します。 完全なプログラムまたは関数のいずれかを作成できます。したがって、プログラムは、stdin、ファイルを介して、または単一の文字列引数として入力を受け取り、出力を返すか印刷することができます。返される場合、出力はlist / array / etcにある可能性があります。単一の文字列ではなく。出力が単一の文字列の場合、ボードは改行で区切る必要があります(末尾の改行は許可されます)。 入力文字列は正規表現r'((-v)+-)(\n(-v)+-)*'と一致し、すべてのスイッチがオフになっている1つのボードを表します。これは、ゼロケースがないことを意味し、スイッチは左揃えです。各行には同じ数のスイッチがない場合があります。 各出力ボードは、入力とまったく同じ形式である必要がありますが、必要に応じてvを^に置き換えることができます。出力ボードは、任意の数の改行で区切ることができます。 ランタイムは当然、スイッチの数がO(2 ^ n)であるため、コードはどのような配置でも10を超えるスイッチではテストされません。 これはコードゴルフなので、バイト数の最も短いコードが優先されます。 サンプルの入力と出力 入力: -v- 可能な出力: -v- -^- 入力: -v- -v- 可能な出力: -^- -^- -^- -v- -v- -^- -v- -v- 多数のスイッチについて回答を確認するのは非常に面倒なので、ここでは健全性チェックツールとしてのPythonスクリプトを示します。(テストケースをさらに増やしたい場合に備えて、特定の入力ファイルから期待される出力を生成するために、現在コメントアウトされたスニペットを含めました。)入力文字列を「input」という名前のファイルに入れ、改行で区切られた出力(申し訳ありませんが、リストのフォーマットはありません)は同じディレクトリの「output」という名前のファイルに入れて実行しpython3 sanitycheck.pyます。

6
十字架のみの三目並べ
前書き 誰もが三目並べというゲームを知っていますが、この課題では少しひねりを加えます。十字架のみを使用します。3つの十字架を連続して配置した最初の人が負けます。興味深い事実は、誰かが負ける前の最大クロス数は6に等しいことです: X X - X - X - X X つまり、3 x 3ボードの場合、最大量は6です。したがって、N = 3の場合、6を出力する必要があります。 別の例、N = 4、または4 x 4ボードの場合: X X - X X X - X - - - - X X - X これは最適なソリューションです。クロスの最大量は9に等しいことがわかります。12 x 12ボードの最適なソリューションは次のとおりです。 X - X - X - X X - X …

30
2の累乗の合計
チャレンジ 整数の入力を指定xすると1 <= x <= 255、を合計したときに与える2のべき乗の結果を返しますx。 例 入力が与えられた場合: 86 プログラムは以下を出力するはずです。 64 16 4 2 入力: 240 出力: 128 64 32 16 入力: 1 出力: 1 入力: 64 出力: 64 特定の2のべき乗が合計に存在しない場合、出力にはゼロが含まれる場合があります。 たとえば、入力65はを出力する場合があります0 64 0 0 0 0 0 1。 得点 これはcode-golfであるため、各言語で最も短い回答が優先されます。
31 code-golf  binary  code-golf  sequence  integer  chess  code-golf  number  arithmetic  matrix  code-golf  code-golf  combinatorics  grid  set-partitions  code-golf  array-manipulation  graph-theory  code-golf  number  code-golf  string  decision-problem  code-golf  matrix  cellular-automata  3d  code-challenge  restricted-source  printable-ascii  code-golf  board-game  code-golf  geometry  grid  code-golf  word-puzzle  code-golf  matrix  sorting  code-golf  code-golf  string  decision-problem  code-golf  matrix  cellular-automata  code-golf  decision-problem  code-golf  math  number  arithmetic  restricted-source  code-golf  code-golf  number  integer  matrix  code-golf  date  code-golf  matrix  code-golf  sequence  combinatorics  chemistry  code-golf  array-manipulation  popularity-contest  code-golf  code-golf  natural-language  code-golf  number  integer  sorting  substitution  code-golf  string  number  date  encode  code-golf  decision-problem  code-golf  string  subsequence  code-golf  string  alphabet  code-golf 

7
最長のドミノチェーン
チャレンジの説明 Dominoesは、2つの値を持つタイルでプレイされるゲームです。1つは左側に、1つは右側に、たとえば[2|4]または[4|5]です。共通の値が含まれている場合、2つのタイルを結合できます。上記の2つのタイルは、次のように結合できます。 [2|4][4|5] n結合されたタイルのシーケンスを、長さnのチェーンと呼びます。もちろん、タイルは回転できるため、タイル[1|2]、[1|3]および長さ3の[5|3]チェーン[2|1][1|3][3|5]に再配置できます。 整数のペアのリストを指定して、これらのタイルを使用して形成できる最長のチェーンの長さを決定します。リストが空の場合、正しい答えは0(1空でないタイルのリストからいつでも長さのチェーンを形成できることに注意してください)。 サンプル入出力 [(0, -1), (1, -1), (0, 3), (3, 0), (3, 1), (-2, -1), (0, -1), (2, -2), (-1, 2), (3, -3)] -> 10 ([-1|0][0|-1][-1|2][2|-2][-2|-1][-1|1][1|3][3|0][0|3][3|-3]) [(17, -7), (4, -9), (12, -3), (-17, -17), (14, -10), (-6, 17), (-16, 5), (-3, -16), (-16, 19), (12, -8)] -> …

20
ファロは配列をシャッフルする
A ファロshuffleが頻繁に「シャッフル」デッキにマジシャンで使用される技術です。ファロシャッフルを実行するには、まずデッキを2つの等しい半分にカットしてから、2つの半分をインターリーブします。例えば [1 2 3 4 5 6 7 8] シャローファロは [1 5 2 6 3 7 4 8] これは何回でも繰り返すことができます。興味深いことに、これを十分な回数繰り返すと、常に元の配列に戻ります。例えば: [1 2 3 4 5 6 7 8] [1 5 2 6 3 7 4 8] [1 3 5 7 2 4 6 8] [1 2 3 4 5 6 …
31 code-golf  permutations  card-games  code-golf  graphical-output  random  code-golf  image-processing  color  code-golf  primes  code-golf  math  arithmetic  combinatorics  decision-problem  code-golf  sequence  number-theory  binary  code-golf  number-theory  set-theory  code-golf  hashing  code-golf  game  card-games  code-golf  ascii-art  code-golf  arithmetic  array-manipulation  jelly  code-golf  string  array-manipulation  code-golf  sorting  code-challenge  code-golf  number  date  binary  code-golf  arithmetic  code-golf  math  number  linear-algebra  polynomials  code-golf  ascii-art  code-golf  grid  decision-problem  code-golf  string  combinatorics  code-golf  string  kolmogorov-complexity  arithmetic  date  code-golf  number  data-structures  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation 

30
ASCIIの三角形
あなたの仕事は、ASCII三角形を印刷するプログラムまたは関数を書くことです。次のようになります。 |\ | \ | \ ---- プログラムはn、制約付きの単一の数値入力を受け取ります0 <= n <= 1000。上記の三角形の値はでしたn=3。 ASCIIの三角形にはnバックスラッシュ(\)と垂直バー(|)、n+1行とダッシュ(-)があり、各行には最終的な行のほかに行番号(0から始まる、つまり最初の行は行0)と等しいスペースがあります。 。 例: 入力: 4 出力: |\ | \ | \ | \ ----- 入力: 0 出力: このテストケースでは、出力は空でなければなりません。空白なし。 入力: 1 出力: |\ -- 入力と出力は、私が指定したとおりでなければなりません。 これはcode-golfなので、できるだけ短いコードを目指してください!
30 code-golf  ascii-art  code-golf  rubiks-cube  code-golf  path-finding  maze  regular-expression  code-golf  math  rational-numbers  code-golf  kolmogorov-complexity  graphical-output  code-golf  tips  code-golf  string  permutations  code-golf  sorting  base-conversion  binary  code-golf  tips  basic  code-golf  number  number-theory  fibonacci  code-golf  date  code-golf  restricted-source  quine  file-system  code-golf  code-golf  math  code-golf  ascii-art  code-golf  math  primes  code-golf  code-golf  math  matrix  code-golf  string  math  logic  factorial  code-golf  palindrome  code-golf  quine  stateful  code-golf  interactive  code-golf  board-game  code-golf  math  arithmetic  code-golf  string  code-golf  math  matrix  code-golf  math  abstract-algebra  polynomials  code-golf  date  code-golf  string  array-manipulation  sorting  code-golf  game  code-golf  string  code-golf  ascii-art  decision-problem  code-golf  number  sequence  code-golf  code-golf  code-golf  sequence  fibonacci  code-golf  math  geometry  random  code-golf  code-golf  math  decision-problem  fractal  rational-numbers  code-golf  number  number-theory  code-golf  combinatorics  permutations  card-games  code-golf  math  sequence  array-manipulation  fibonacci  code-golf  sequence  decision-problem  graph-theory  code-golf  ascii-art  parsing  lisp  code-golf  string  math  natural-language  logic  code-golf  math  logic  code-golf  string  alphabet  code-golf  string  code-golf  string 

26
デジタル合計フィボナッチ
私たちは皆、フィボナッチ数列に精通しています: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765 ただし、代わりに、前の2つのエントリのデジタル合計をf(n) = f(n-1) + f(n-2)取得します。 シーケンスは引き続きで始まる必要があり0, 1、その後、違いはすぐに明らかになります。このリストには0のインデックスが付いていますが、1のインデックスも使用できます。 f(0) = 0 f(1) = 1 f(2) = 1 # 0 + 1 f(3) = 2 # 1 + 1 f(4) …

17
モッツキン数
n番目のMotzkin番号は、(0、0)から(n、0)へのパスの数です。各ステップは(1、-1)、(1、0)、または(1、1)の形式で、パスはy = 0未満になることはありません。 上記のリンクからのn = 1、2、3、4のこれらのパスの例を次に示します。 望ましいシーケンスはOEIS A001006です。OEISには、シーケンスの他のいくつかの特性があります。 入力として正の整数nが与えられます。n番目のMotzkin番号を出力する必要があります。 Motzkinの番号は1〜10です。 1, 2, 4, 9, 21, 51, 127, 323, 835, 2188 すべての標準入出力メソッドが許可されています。標準の抜け穴が適用されます。 これはコードゴルフです。最少バイトが勝ちます。

7
どのフレンドのキャラクターが本当に親友でしたか?
アメリカのシットコムフレンズの6人の主なキャストメンバーは全員、シリーズの実行中(少なくともシーズン2以降)に同じ給料が支払われることに同意しました。しかし、だからといって、全員が同じ時間の放送時間を持っているわけでも、画面上ですべて同じ時間対話したというわけでもありません。 この課題では、どのフレンドの友達が本当に最高かを判断するのに役立つプログラムを作成します。 セットアップ 友人のエピソードやシーンを見て、各カメラショット中に誰がどのくらいの時間画面にいるかを正確に書き留めてください。 各キャラクターの名前を短縮します: C以下のためであるチャンドラー Jジョーイ用です M以下のためであるモニカ P以下のためであるフィービー Rレイチェルのためです Sロスのためです 次に、カメラショットごとに(またはキャラクターがショットを入力/終了するたびに)、誰が画面にいたかをリストします。例えば: 504 CRS 200 J 345 MP 980 2000 CJMPRS これは言っている: 504msの間、チャンドラー、レイチェル、ロスがスクリーンに映りました。 その後、200msの間、ジョーイはそうでした。 それから345msの間、モニカとフィービーはそうでした。 その後、980msの間、6人の主人公のいずれも画面に表示されませんでした。 その後、2秒間、すべてがそうでした。 (これは実際のクリップからではありません、私はそれを作りました。) 以下は同等であることに注意してください。 504 CRS 1 J 199 J 345 MP 980 2000 CJMPRS どのキャラクターの組み合わせが最もスクリーンタイムが長かったかを分析するために、6キャラクターの64個の可能なサブセットすべてを見て、それらが持っていたスクリーンタイムを合計しました。カメラショット中にサブセット内の全員が画面に表示される場合、サブセット内の文字よりも多くの文字がある場合でも、そのカメラショットの時間がそのサブセットの合計画面時間に追加されます。 空のサブセットには例外があります-6つのメインキャラクターが含まれていないシーンのみがカウントされます。 したがって、上記の例の分析は次のようになります。 980 2504 C 2200 J 2345 M …

3
箱に詰め物をする
あなたの仕事は、与えられた長方形を素数で埋めることができるプログラムまたは関数を書くことです。矩形の入力となります。出力は、数字とスペースで構成される文字列のリストである必要があります。長さ2以上の各水平(左から右)および垂直(上から下)の数字列(スペースまたは長方形の境界で区切られる)は、素数でなければなりません。各素数は1回だけ使用できます。先行ゼロは許可されません。出力の末尾の改行はオプションです。widthheightheightwidth 例: With input (5, 3) a valid output would be: 11 13 7 0 173 which scores 11, 13, 173, 17, 103 for a total of 5 points. スコア: スコアリングの長方形サイズはになります80, 60。長方形内の長さ2以上の水平または垂直の素数はそれぞれ1ポイントを獲得します。最もポイントの多い答えが勝ちです。同点の場合、最も早い回答が勝ちます。 ルール: 標準的な抜け穴は禁止されています。 プログラムは80, 60サイズに合わせて設計してはいけません。回答がこのサイズに最適化されていると思われる場合、長方形のサイズを最大に変更する権利を留保し100, 100ます。 使用される素数は実際の素数である必要があります(確率的または擬似素数ではありません)。プログラムは、実行時に数値を計算またはチェックするか、ハードコーディングすることがあります。素数を見つける方法は、課題の重要な部分ではありません。 回答には、出力テキストとコードを含める必要があります。プログラムが大きすぎる場合は、コアアルゴリズムコードを少し説明するだけで含めることができます。 編集:本当の素数が必要であることを明確にした。最大長方形サイズを追加しました。 編集2:投稿する必要があるコードを明確にしました。

28
超対数を計算する
これは簡単な課題です。 数を考えるとn >= 0、出力超対数(またはログ*、ログスターを、または対数を繰り返し、同等であるため、nこのような課題に対して負になることはありません。)のn。 これは、テトラションに対する2つの逆関数の1つです。もう1つはスーパールートです。これは関連する質問です。 例 Input Output 0 0 1 0 2 1 3 2 4 2 ... 15 2 16 3 ... 3814279 3 3814280 4 ルール 可能ですが、小数をサポートする必要はありません。 少なくともの入力をサポートする必要があり3814280 = ceiling(e^e^e)ます。 のような値をハードコーディングすることはできません3814280。(あなたのプログラムは理論的にはより大きな数値をサポートしなければなりません。)アルゴリズムを実装したいです。 最短のコードが優先されます。 関連OEIS
29 code-golf  math  code-golf  array-manipulation  sorting  code-golf  math  arithmetic  matrix  code-golf  string  kolmogorov-complexity  code-golf  string  code-golf  math  sequence  arithmetic  recursion  code-golf  math  ascii-art  sequence  code-golf  math  array-manipulation  code-golf  code-golf  kolmogorov-complexity  code-golf  string  code-golf  string  decision-problem  code-golf  array-manipulation  tips  javascript  json  code-golf  math  string  number  number-theory  code-golf  math  sequence  fibonacci  number  arithmetic  fastest-code  integer  code-golf  math  sequence  code-golf  string  file-system  tips  golfscript  code-golf  string  code-golf  string  natural-language  code-golf  string  file-system  code-golf  math  array-manipulation  code-challenge  image-processing  compression  code-golf  math  number  sequence  code-golf  math  combinatorics  regular-expression  code-golf  sequence  pi  code-golf  ascii-art  code-golf  string  array-manipulation  sorting  code-golf  string  graph-theory  code-golf  string  code-golf  string  ascii-art  code-challenge  compression  code-golf  code-golf  math  sequence  number-theory  code-golf  maze  graph-theory  code-golf  math  sequence 

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