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

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

30
小さな「H」から「H」を作成する
チャレンジ 整数を指定するとsize、次のことを行う関数またはプログラムを作成します。 size1に等しい場合、出力 H H HHH H H 場合はsize1、出力よりも大きく、 X X XXX X X どこXのプログラム/関数の出力size - 1 (必要に応じて0、回答で指定する限り、ベースケースをに対応させることができます) 次の出力形式のいずれかが受け入れられますが、どちらがより便利です。 任意の二つの異なる文字に対応する必要な構造の文字列Hとspace 対応する任意の二つの別個の値を要求される構造を有する二次元アレイ、H及びspace 任意の二つの別個の値は、対応する各列における出力の一つの行と列/文字列のリスト、Hおよびspace 各行に一定量の先行スペースがある限り、先行スペースを使用できます。2つの異なる出力文字は、異なる限り、選択したものに依存します。 コードが返す出力形式を指定します。 テストケース 1 H H HHH H H 2 H H H H HHH HHH H H H H H HH HH H HHHHHHHHH H HH HH …
73 code-golf  ascii-art  fractal  code-golf  code-golf  string  code-golf  string  matrix  code-golf  graph-theory  maze  binary-matrix  code-golf  kolmogorov-complexity  random  code-challenge  metagolf  test-battery  brain-flak  text-processing  code-golf  matrix  code-golf  number-theory  primes  code-golf  string  matrix  code-golf  binary  bitwise  code-golf  number  factorial  floating-point  code-golf  number  sequence  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-golf  string  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 

28
ファイを計算する(パイではない)
いいえ、私は意味しないϕ = 1.618...とπ = 3.14159...。私は機能を意味します。 φ(x)は、にx比較的素数であるかそれ以下の整数の数ですx。 π(x)は、以下の素数の数ですx。 「not pi」がπ̅(x)であり、それ以下の複合体の数になるように定義するとしましょうx。 仕事 厳密に正の整数を指定してx、φ(π̅(x))を計算しますます。スコアリングはバイト単位です。 例 各行は、入力(1〜100を含む)と、スペースで区切られた対応する出力で構成されます。 1 0 2 0 3 0 4 1 5 1 6 1 7 1 8 2 9 2 10 4 11 4 12 2 13 2 14 6 15 4 16 6 17 6 18 4 19 …
73 code-golf  sequence  primes  number-theory  code-golf  decision-problem  code-golf  date  code-golf  typography  code-golf  math  number  multiple-holes  code-golf  quine  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 

10
リトルチャンドラーは悲しい。彼を元気づけるために彼に雲を引きます
リトルチャンドラーは悲しい。彼を元気づけるために彼に雲を引きます。 注:クラウドを描画しても、実際に彼を元気づけることはありません。 円は、3組として定義できます。(x,y,r)ここxで、デカルト平面上の円のx位置、デカルト平面上の円yのy位置、およびr円の半径です。xそしてy負でもよいです。r常にポジティブです。入力は、スペースで区切られた3タプルの形式の円のリストです。例えば: 3,1,1 3,2,1.5 1,2,0.7 0.9,1.2,1.2 1,0,0.8 3,1,1手段「に中心点を有する円3,11つの半径を有する。3,2,1.5手段」に中心点を有する円3,21.5半径を有します。 入力のこれらの円をすべてグラフに描画すると、次のようになります(わかりやすくするためにグリッド線とラベルを含めましたが、これらは必須ではありません)。 すべての円が凝集していることに注目してください。つまり、それらはすべて互いに重なり合っており、1つの大きなグループを形成し、残りの部分から分離された小さな円のグループはありません。入力は凝集性が保証されています。 ここで、これらの円によって形成される「境界線」の周りを移動する線を描き、他の線は一切ないとします。これは、すべての円によって形成されるシルエットの境界線を描くようなものです。結果のクラウドは次のようになります。 そのため、このクラウドは、境界を形成する入力内の円の円弧のみを描画することで形成され、単一の形状になります。言い換えると、クラウドは、別の円内にないアークを描くことによって形成されます。プログラムは、上記で説明した形式で入力を受け取り、結果のクラウドを表示する画像を出力します。雲の全体的な形状は正確でなければなりませんが、スケール、色、線の太さ、頂点の見え方はあなた次第です。クラウドが表示されている必要があるため、「このプログラムは白い背景に白い雲を描画する」、「このプログラムは無限に小さなスケールで雲を描画する」、「このプログラムは0の雲を描画する」また、境界線の色は塗りつぶしまたは背景の色と異なる必要があることに注意してください。 もう一つの例。入力: 1,4,2 5,2,1 3,1,1 3.5,2,1.2 3,3,0.7 1,2,0.7 出力: クラウドに「穴」がある場合は、穴も描画する必要があります。入力: 0,5,4 3,4,4 4,3,4 5,0,4 4,-3,4 3,-4,4 0,-5,4 -3,-4,4 -4,-3,4 -5,0,4 -4,3,4 -3,4,4 出力: 重要なルールは次のとおりです。プログラムは境界を形成する線のみを描画する必要があります。つまり、単純に円を完全に描画してから、白い塗りでわずかに小さい円を描画することはできません。このメソッドはまだ境界を形成しない線を描画するため、後でそれらを覆うだけです。ルールの目的は、「円を描いてから、白い塗りで円をもう一度描く」実装、またはそれに類似したものを防ぐことでした。答えは、実際に描画する前に描画する場所を実際に計算することです。 これはコードゴルフであるため、最短の文字数が優先されます。

30
文字列の長さを追加する
チャレンジ: s文字a- z、A- Z、0-の文字列を指定すると9、の長さsをそれ自体に追加し、長さの追加の文字をの全長の一部としてカウントしsます。 入力: 任意の長さの文字列(空にすることもできます)。 出力: 同じ文字列ですが、長さが末尾に追加されます。長さを表す文字も長さの一部としてカウントする必要があります。追加する有効な長さが複数ある場合は、可能な限り短いものを選択してください(例については、テストケースを参照してください)。 テストケース: INPUT -> OUTPUT // Comment aaa -> aaa4 -> 1 // Empty string aaaaaaaa -> aaaaaaaa9 // aaaaaaaa10 would also normally be valid, but violates using the smallest number rule mentioned above aaaaaaaaa -> aaaaaaaaa11 a1 -> a13 // Input can …
51 code-golf  string  code-golf  string  random  code-golf  array-manipulation  code-golf  ascii-art  kolmogorov-complexity  random  code-golf  array-manipulation  code-golf  stateful  code-golf  hello-world  code-golf  string  code-golf  interpreter  lisp  code-golf  restricted-source  quine  palindrome  code-golf  ascii-art  random  generation  challenge-writing  ascii-art  random  polyglot  maze  answer-chaining  string  cops-and-robbers  whitespace  code-golf  string  cops-and-robbers  whitespace  code-golf  number  sequence  code-golf  date  code-golf  ascii-art  decision-problem  code-golf  combinatorics  chemistry  code-golf  kolmogorov-complexity  source-layout  radiation-hardening  code-golf  ascii-art  path-finding  maze  code-golf  string  ascii-art  game  animation  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  restricted-source  new-years 

8
コインシステムが正規かどうかを判別
レジ係のアルゴリズムは、ほとんどの通貨システムのために非常によく動作しますコインの最小数の変更を行うためのアルゴリズムです。しかし、ほとんどの貪欲なアルゴリズムのように、欠陥がないわけではありません。通貨システムが適切に設定されている場合(または間違っている場合)、キャッシャーのアルゴリズムが最適な変更を見つけることができない特定の値があります。 次の例をご覧ください。 4¢、3¢、1¢のコインがあります。6¢を作りたい。 キャッシャーのアルゴリズムは、最初に最大数のコイン(開始するために4¢1つ)を選択し、減算して繰り返します。これにより、1枚の4¢コインと2枚の1¢コイン、合計3枚のコインが得られます。 残念ながら、アルゴリズムには2枚のコイン(2つの3¢コイン)で6¢を作成する方法があります。 変更のシステムは、キャッシャーのアルゴリズムが最適な数のコインを見つけるすべての整数値に対して標準的であると見なされます。 仕事 あなたの仕事は、システムをコインの値を表す整数の順序付けられていないコンテナまたはソートされた順序付けられたコンテナとして受け取り、システム入力が正規で偽の場合は真偽値を出力することです。 プログラムは、任意の値を作成できるすべてのシステムで動作するはずです。(つまり、すべてのシステムに1¢のコインがあります) これはコードゴルフの最小バイト数です。 テストケース このリストは決して網羅的なものではなく、プログラムはすべての有効な入力に対して機能するはずです 1, 3, 4 -> 0 1, 5, 10, 25 -> 1 1, 6, 10, 25 -> 0 1, 2, 3 -> 1 1, 8, 17, 30 -> 0 1, 3, 8, 12 -> 0 1, 2, 8, 13 …

2
OEISの拡張:ダイヤモンドタイルのカウント
私は約束します、これはダイアモンドタイルに関する私の最後の挑戦になるでしょう(とにかく、しばらくの間)。明るい面では、この課題はASCIIアートとは関係がなく、コードゴルフでもないため、これは実際にはまったく異なります。 念のため、すべての六角形に3つの異なるダイヤモンドのタイトルを付けることができます。 興味深い質問は、特定の六角形のサイズに対してこれらのタイルがいくつ存在するかです。これらの数値はかなり徹底的に研究されており、OEIS A008793に記載されているようです。 ただし、回転と反射までのタイルの数を尋ねると、問題は複雑になります。たとえば、辺の長さN = 2の場合、次の20のタイルが存在します。 ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ /\_\_\ /\_\_\ /\_\_\ /\_\_\ /_/\_\ /_/\_\ /\_\_\ /_/\_\ /_/\_\ /_/\_\ /\/\_\_\ /\/_/\_\ /\/_/_/\ /\/_/\_\ /\_\/\_\ /\_\/_/\ /\/_/_/\ /\_\/\_\ /\_\/_/\ /_/\/\_\ \/\/_/_/ \/\_\/_/ \/\_\_\/ \/_/\/_/ \/\_\/_/ \/\_\_\/ \/_/\_\/ \/_/\/_/ \/_/\_\/ \_\/\/_/ \/_/_/ \/_/_/ \/_/_/ …

30
既知の既知のものがあります
元米国国防長官のドナルド・ラムズフェルドは、「既知の知人」というフレーズを有名にした。ここでは、彼の発言を4行のスタンザに要約します。 具体的には、次のテキストを出力します。 known knowns known unknowns unknown knowns unknown unknowns 大文字と小文字は区別されません(たとえば、大文字Known unKnownsで結構です)。また、単一の末尾の改行を使用できますが、他の形式の変更は許可されていません。これは、単語間の単一のスペース、および行間のLF(59バイト)またはCR/LF(62バイト)を意味します。 ルール 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。 標準的な抜け穴は禁止されています。 これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。

30
2つの正方形の合計を数える
負でないn数値を指定するとn、整数の2乗の合計として表現する方法の数を出力しますn == a^2 + b^2(OEIS A004018)。注ことaとb、正、負、またはゼロ、及びその順序事項することができます。最少バイトが勝ちます。 例えば、n=25与える12ため25のように表すことができます。 (5)^2 + (0)^2 (4)^2 + (3)^2 (3)^2 + (4)^2 (0)^2 + (5)^2 (-3)^2 + (4)^2 (-4)^2 + (3)^2 (-5)^2 + (0)^2 (-4)^2 + (-3)^2 (-3)^2 + (-4)^2 (0)^2 + (-5)^2 (3)^2 + (-4)^2 (4)^2 + (-3)^2 以下がの値n=25です。コードがで動作するように注意してくださいn=0。 0 1 1 4 2 4 …

19
私のパイは二等分されましたか?
正の整数の空でないリストを取り込むプログラムまたは関数を作成します。"1 2 3 4"またはなどの合理的で便利な形式で入力されていると想定できます[1, 2, 3, 4]。 入力リストの数値は、円グラフ全体のスライスを表します。各スライスサイズは対応する数値に比例し、すべてのスライスは指定された順序でグラフの周囲に配置されます。 たとえば、次のパイ1 2 3 4は次のとおりです。 あなたのコードが答えなければならない問題は、円グラフが今までされてい二分しますか?つまり、円の一方の側から他方の側に完全に直線があり、対称的に2つに分割されていますか? あなたはする必要があり、出力truthyの少なくとも一つの二等分線と出力がある場合に値をfalsy何も存在しない場合、値。 で1 2 3 4例との二分がある4 1と2 3出力truthyであろうように。 ただし、入力の1 2 3 4 5場合は二等分線がないため、出力は偽になります。 追加の例 数値を異なる方法で配置すると、二等分線が削除される場合があります。 例2 1 3 4→偽: 入力リストに数字が1つしかない場合、パイは二等分されません。 例10→偽: 複数の二等分線が存在する場合があります。ゼロ以上である限り、出力は真実です。 例6 6 12 12 12 11 1 12→真実:(3つの二等分線があります) 視覚的に明らかではない場合でも、2分割が存在する場合があります。 例1000000 1000001→偽: 例1000000 1000001 1→真実: (円グラフを生成してくれたnces.ed.govに感謝します。) テストケース …
43 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 

8
遅延戦艦の配置
次のシナリオを想像してください。友人と戦艦をプレイしているが、チートすることに決めたとします。彼があなたの船があった場所を撃った後に船を動かすのではなく、あなたは船を全く置かないことに決めます。そのような方法で船を配置することが不可能になるまで、彼のショットはすべてミスだと彼に言います。 フィールドサイズ、船の大きさのリスト、およびショットのリストの3つの引数を取る関数または完全なプログラムを作成する必要があります。 戦場 指定されたパラメーターの1つは、ボードのサイズです。戦場はセルの正方形であり、与えられたパラメーターは正方形の片側にすぎません。 たとえば、次はサイズ5のボードです。 フィールドの座標は、2つのコンポーネントの文字列として指定されます。文字の後に数字が続きます。特定のケースにある文字に依存することができます。 文字は列を指定し、数字はセルの行を指定します(1から始まる)。たとえば、上の図では、強調表示されているセルはで示されてい"D2"ます。 26文字しかないため、フィールドは26x26より大きくすることはできません。 船 船は1ブロック以上の直線です。船の量はリストで指定されます。最初の要素は1セルの船、2セル-2セルの船などです。 たとえば、リスト[4,1,2,0,1]は次のシップセットを作成します。 戦場に置かれると、船は交差したり、互いに触れたりすることさえできません。角さえありません。ただし、フィールドの端に触れることはできます。 以下に、有効な船の配置の例を示します。 特定のシップセットに対して、特定のサイズの空のボード上に常に配置が存在すると想定できます。 出力 そのような船の配置が存在する場合、それらのいずれかを出力する必要があります。 プログラムは、3つのタイプのいずれかのASCII文字の改行で区切られたマトリックスを出力する必要があります。1つは空白セルを示し、1つは出荷ピース、もう1つは「欠落」とマークされたセルです。他の文字は出力されません。 例えば、 ZZ@Z \@@Z @\\Z \Z\\ (この例では、@空のセル、\「欠落」セル、およびZ出荷部品と定義しました) そのような配置が存在しない場合、プログラム/関数は何も出力せずに戻ります。 入力 本格的なプログラムを作成する場合は、リストの入力方法を指定する必要があります。引数を使用するものもあれば、stdinを使用するものもあります。 これはcode-golfであり、最も少ないキャラクターが勝ちます。 ゴルフ以外の最適化されたソリューションの例 は、こちらをご覧ください Compile with -std=c99、最初の引数はボードのサイズ、その他の引数は船のサイズです。ショットの改行で区切られたリストが標準入力に表示されます。例: ./a 4 1 1 1 <<< $'A2\nA4\nB3\nC3\nC4\D4'

26
二乗言葉を作る
チャレンジ あなたの仕事は、与えられた文字列入力を取り、二乗形式で入力を出力するプログラムを作成することです。空の文字列は空の文字列を返す必要があります。 例 入力が与えられた場合: golf プログラムは以下を出力するはずです。 golf o l l o flog 入力: 123 出力: 123 2 2 321 入力: a 出力: a 入力: Hello, world! 出力(との間のスペースに注意してください-w-ギャップは単なる改行ではありません): Hello, world! e d l l l r o o , w w , o o r l l l d e !dlrow …

30
ババブからzyzyzまでのすべての単語
あなたの仕事は、以下の構造を持つ5文字ごとの読み取り可能なリストを出力するプログラムを作成することです。 子音-母音-子音-母音-子音 出力はアルファベットごとにソートされ、1行に1つの単語があり、単語が2回繰り返されることはありません。小文字でも大文字でもかまいませんが、混在させることはできません。したがって、リストは次のように開始および終了できます。 babab babac babad ... zyzyw zyzyx zyzyz 母音はa - e - i - o - u - yであり、他の20個の英語のアルファベット文字は子音です。 単語は実際の辞書の単語である必要はありません。 最短のコードが優先されます。 注:数年前、私は大学のWebサイトでまさにそれを行ったプログラムを見つけました。私の姓と名がcvcvc制約に適合することがわかり、私は自分自身をグーグルで探していました。

10
便器プロトコル
バックグラウンド 男性のトイレで個々の小便器を選ぶ順番を説明する、いわゆる「尿プロトコル」は、複数の場所で議論されてきました。1つのバージョンがこのxkcdブログ投稿で提供されています。この質問は、わずかなバリエーションに関するものです。 配置:行のnの小便器。 プロトコル:新しい人はそれぞれ、すでに使用されている便器から最も遠い便器の1つを選択します。 これは、最初の人が小便器を選ぶ際に制限を設けないことに注意してください。 更新:n人がn個の小便器を選択できるさまざまな方法のシーケンスは、1、2、4、8、20 ...で始まります。これは、OEIS A095236と同じではないことに注意してください。質問。 仕事 0〜10の整数nを指定すると、n人が小便器を占有できるすべての可能な順序が(任意の順序で)出力されます。各順序は、最終的な配置として印刷する必要があります。左端の小便器から始まり、オプションの非英数字セパレーター(前ではなく)で始まる、人々(最初の9人は1〜9、10番目は0)を表す数字のシーケンス以降)数字。たとえば、次の出力は両方とも有効です。 >> 3 132 213 312 231 >> 4 1|3|4|2 1|4|3|2 3|1|4|2 4|1|3|2 2|3|1|4 2|4|1|3 2|3|4|1 2|4|3|1 STDIN(または最も近い代替)、コマンドライン引数、または関数引数を介して入力を取得して、プログラムまたは関数を作成できます。結果はSTDOUT(または最も近い代替)に印刷する必要があります。 得点 最短のコードが優先されます。標準の利用規約が適用されます。

30
カタロニア語番号
の カタロニア番号(OEISは)多くの場合、組み合わせ論に登場する自然数の列です。 n番目のカタロニア語番号は、Dyckの単語の数です(括弧または括弧のようなバランスの取れた文字列 [[][]]です;形式的には、2文字aとbを使用して、先頭から始まる部分文字列の数がnumber以上の文字列として定義されます長さ2nで、文字列全体が同じ数のaおよびb文字を持ちます。n番目のカタロニア語番号(n> = 0の場合)も、次のように明示的に定義されます。 n = 0から始めて、最初の20個のカタロニア語番号は次のとおりです。 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190... チャレンジ STDINまたは受け入れ可能な代替手段を介して負でない整数nを取り、n番目のカタロニア語番号を出力する完全なプログラムまたは関数を作成します。プログラムは、入力0〜19に対して少なくとも機能する必要があります。 I / O 入力 プログラムは、STDIN、関数の引数、またはこのメタ投稿ごとに受け入れ可能な代替のいずれかから入力を受け取る必要があります。入力した数値は、標準の10進数表現、単項表現、またはバイトとして読み取ることができます。 言語がSTDINまたは受け入れ可能な代替から入力を取得できない場合(のみ)、ハードコーディングされた変数またはプログラム内の適切な同等物から入力を取得できます。 出力 プログラムは、n番目のカタロニア語番号をSTDOUT、関数結果、またはこのメタ投稿ごとに受け入れ可能な代替物に出力する必要があります。標準の10進数表現、単項表現、またはバイトでカタロニア語番号を出力できます。 出力は適切なカタロニア語番号で構成され、オプションで1つ以上の改行が続きます。抑制できない言語のインタープリターの一定の出力(挨拶、ANSIカラーコード、インデントなど)を除き、他の出力は生成できません。 これは、最短の言語を見つけることではありません。これは、すべての言語で最短のプログラムを見つけることです。したがって、私は答えを受け入れません。 この課題では、実装されている限り、課題より新しい言語は受け入れられます。以前に未実装の言語用にこのインタープリターを自分で作成することは許可されています(推奨されます)。それ以外は、コードゴルフのすべての標準ルールに従わなければなりません。ほとんどの言語での提出は、適切な既存のエンコーディング(通常はUTF-8)でバイト単位でスコア付けされます。また、n番目のカタロニア語番号を計算するための組み込み関数が許可されていることに注意してください。 カタログ この投稿の下部にあるスタックスニペットは、a)言語ごとの最短ソリューションのリストとして、b)全体的なリーダーボードとして、回答からカタログを生成します。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 ## Language Name, N bytes …

21
NxNxNルービックキューブの順列の量
前書き: 3x3x3ルービックキューブが有する43,252,003,274,489,856,00043,252,003,274,489,856,00043,252,003,274,489,856,000は約43である、可能な順列を京。この数値については聞いたことがあるかもしれませんが、実際にはどのように計算されますか? 3x3x3ルービックキューブには6つの側面があり、それぞれに9つのステッカーがあります。ただし、ステッカーではなく(外部)ピースを見ると、6つの中央ピースがあります。8つの角の部分。12個のエッジピース。センターは移動できないため、計算ではそれらを無視できます。コーナーとエッジに関して: 8!8!8!あります!(40,32040,32040,320)の方法は、8つのコーナーを配置します。各コーナーには3つの方向がありますが、独立して方向付けできるのは7つ(8つのうち)だけです。第八/最終コーナーの向きは、所与の、先行7に依存37373^7(2,1872,1872,187)の可能性。 12個あります!12!212!2\frac{12!}{2}(239,500,800239,500,800239,500,80012面の縁部を配置する)方法。12!12!12!から半分に!これは、角が正確に一致するときに、エッジが常に偶数の順列にある必要があるためです。イレブンエッジが所定の第12 /最終的なエッジのフリップフロッ先行11に依存して、独立して反転することができる2112112^{11}(2,0482,0482,048)の可能性。 これをまとめると、次の式があります。 8!×37×12!2×211=43,252,003,274,489,856,0008!×37×12!2×211=43,252,003,274,489,856,0008!×3^7×\frac{12!}{2}×2^{11} = 43,252,003,274,489,856,000 出典:Wikipedia-ルービックキューブ順列 これはすでにかなり複雑に見えるかもしれませんが、3x3x3キューブの場合はまだかなり単純です。偶数キューブの場合、式はわずかに異なります。これは、たとえば4x4x4キューブの式です。 8!×37×24!2247=7,401,196,841,564,901,869,874,093,974,498,574,336,000,000,0008!×37×24!2247=7,401,196,841,564,901,869,874,093,974,498,574,336,000,000,000\frac{8!×3^7×24!^2}{24^7} = 7,401,196,841,564,901,869,874,093,974,498,574,336,000,000,000 これは、短いスケールで約7.40 quattuordecillionです。 また、より大きなNxNxNキューブ(つまり、現在の世界記録33x33x33)の場合、式はかなり拡張されます。ただし、この紹介を長くしすぎないように、代わりにこれらのリンクをここに配置します。ここでは、4x4x4キューブと他のサイズのNxNxNキューブの順列を結果の式で説明します。 2x2x2 4x4x4 5x5x5 6x6x6 7x7x7 33x33x33 あなたは今疑問に思っているかもしれません:に基づいた一般的な公式はありますか NNNの任意のためのNNN xはNNN xはNNNキューブ?確かにあります。NNN基づいてまったく同じ結果を与える3つの完全に異なるアルゴリズムを次に示します。 1:クリスハードウィックのフォーミュラ: (24×210×12!)N(mod2)×(7!×36)×(24!)⌊14×(N2−2×N)⌋(4!)6×⌊14×(N−2)2⌋(24×210×12!)N(mod2)×(7!×36)×(24!)⌊14×(N2−2×N)⌋(4!)6×⌊14×(N−2)2⌋\frac{(24×2^{10}×12!)^{N\pmod2}×(7!×3^6)×(24!)^{\lfloor{\frac{1}{4}×(N^2-2×N)}\rfloor}}{(4!)^{6×\lfloor{\frac{1}{4}×(N-2)^2}\rfloor}} WolframAlphaで試してみてください。 2:クリストファー・モウラの三角式: 8!×37×(24!(4!)6)14×((N−1)×(N−3)+cos2(N×π2))×(24!)12×(N−2−sin2(N×π2))×(12!×210)sin2(N×π2)×124cos2(N×π2)8!×37×(24!(4!)6)14×((N−1)×(N−3)+cos2⁡(N×π2))×(24!)12×(N−2−sin2⁡(N×π2))×(12!×210)sin2⁡(N×π2)×124cos2⁡(N×π2)8!×3^7×\left(\frac{24!}{(4!)^6}\right)^{\frac{1}{4}×((N-1)×(N-3)+\cos^2(\frac{N×\pi}{2}))}×(24!)^{\frac{1}{2}×(N-2-\sin^2(\frac{N×\pi}{2}))}×(12!×2^{10})^{\sin^2(\frac{N×\pi}{2})}×\frac{1}{24^{\cos^2(\frac{N×\pi}{2})}} WolframAlphaで試してみてください。 3:クリストファー・モウラの素数式: 212×(2×N×(N+7)−17−11×(−1)N)×3N×(N+1)+2×512×(2×N×(N−2)+1+(−1)N)×718×(6×N×(N−2)+3+5×(−1)N)×1114×(2×N×(N−2)−1+(−1)N)×9657718×(2×N×(N−2)−3+3×(−1)N)212×(2×N×(N+7)−17−11×(−1)N)×3N×(N+1)+2×512×(2×N×(N−2)+1+(−1)N)×718×(6×N×(N−2)+3+5×(−1)N)×1114×(2×N×(N−2)−1+(−1)N)×9657718×(2×N×(N−2)−3+3×(−1)N)2^{\frac{1}{2}×(2×N×(N+7)-17-11×(-1)^N)}×3^{N×(N+1)+2}×5^{\frac{1}{2}×(2×N×(N-2)+1+(-1)^N)}×7^{\frac{1}{8}×(6×N×(N-2)+3+5×(-1)^N)}×11^{\frac{1}{4}×(2×N×(N-2)-1+(-1)^N)}×96577^{\frac{1}{8}×(2×N×(N-2)-3+3×(-1)^N)} ここで、965779657796577は(13×17×19×23)(13×17×19×23)(13×17×19×23)です。 WolframAlphaで試してみてください。 出典:Cubers-reddit-位置の数、神の数などの数学的計算式 チャレンジ: 入力整数与えられており、これら三つの式(または独自の誘導体)のいずれかを選択し、実装NNNレンジでの[2,100][2,100][2,100]、正しい結果を出力します。 チャレンジルール: これら3つ以外の別の式を自由に使用できますが、これら3つが正しいことが証明されていることに注意してください。別の式を使用する場合は、元の式のリンクを追加してください(または、自分で計算する場合は、詳細な説明を追加してください)。そして、出力が正しい場合、範囲内のすべての整数をチェックします。おそらくインスピレーションは、このシーケンスA075152のoeisにあります。 あなたの言語が科学的な出力を自動的に出力する場合(すなわち、4x4x4式の後の数字の代わりに1.401 ... × 10451.401 ...×10451.401...×10^{45})、これは許可されます。ただし、コード内の式の実行中の浮動小数点精度による丸め誤差は許可されないため、この科学的な丸めを正確な出力に変換して、結果を検証できるように追加のコードを回答に追加してください-実際の結果は正確。 プログラム/機能は、範囲内の少なくとも入力の正しいあるべきである[ 2 …

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