(チャットでの「チェス」タグと「フィボナッチ」タグのランダムな組み合わせに対するヘルカの反応に触発された)
フィボナッチ
フィボナッチ数は、各番号が一緒に前の2つの数字を追加することによって構成されている数学のよりよく知られている配列の一つです。ゼロインデックスシーケンスの定義は次のとおりです。
f(0) = 0
f(1) = 1
f(n) = f(n-1) + f(n-2)
これにより、シーケンス0, 1, 1, 2, 3, 5, 8, 13, 21, ...
(OEISリンク)が生成されます。この課題では、厳密に正の値(so 1, 1, 2, 3, ...
)のみに焦点を当てます。インデックス0またはインデックス1を選択できますが、提出する際にそのことを明記してください。
フィボナッチ数はf(n)
、サイズが連続する正方形を使用し、エッジを揃えることにより、平面のタイル化に使用できます。タイリングは、現在の正方形から「右上左下」のパターンで正方形を配置することにより、反時計回りに行われます。この部分的なタイルの例f(8)=21
は、次のように、開始正方形が青で強調表示されています。
f(1)=1
開始正方形(青で強調表示)、f(2)=1
その右側にf(3)=2
配置されたf(4)=3
正方形、そこから上に配置された正方形、左に配置された正方形などとして見ることができます。次の正方形はf(9)=21+13=34
、下に配置されます。これは、このチャレンジで使用する部分的なタイル化方法です。
クイーンズ
チェスのゲームでは、任意の数のスペースを水平、垂直、または斜めに移動できるため、最も強力なピースはクイーンです。下のボード図では、黒い円の四角は女王が移動できる場所を示しています。
我々は長期的な定義しますカバレッジを通り
空のボード上の女王の特定の位置と、女王自身の開始位置を含めて、女王が移動できる正方形の割合と正方形の合計数。
上記の例の場合、女王のカバレッジは28/64 = 43.75%
です。女王が右上のh8
正方形にいた場合、カバレッジはになります22/64 = 34.375%
。もし女王がいれば、e7
報道はなるでしょう24/64 = 37.5%
。
チャレンジ
この課題のチェス盤として、上記のフィボナッチタイリングを使用します。入力として2つの正の整数が与えられ、n
さらにx
:
n
タイリングがどのように大規模表します。21
左の正方形を使用した上記のタイルの例は、(ゼロインデックスの場合)n = 8
以降のサイズのボードですf(8) = 21
。x
カバレッジを計算するため、クイーン(S)配置のために使用されるフィボナッチ正方形のどちら表します。クイーンは、その特定のフィボナッチ正方形タイルの各正方形に1つずつ配置され、合計カバレッジは個々の(一意の)カバレッジの合計です。
たとえば、n = 8
(上記と同じタイリング)およびx = 4
(f(4) = 3
正方形に対応する、影付きの青)の画像です。これらの9つの青い正方形のそれぞれに1つずつクイーンを配置することにより、クイーンはオレンジ色の網掛けのすべての正方形を(組み合わせて)カバーできます。したがって、この例の合計カバレッジはです309/714 = 43.28%
。
明らかにn = x
、その範囲はいつでもそうです100%
(たとえば、とn=8
でx=8
、ボード全体のすべての正方形が少なくとも1回覆われることがわかります)。逆に、適切な大きさのn
and x=1
またはx=2
で、カバレッジは近づきます(ただし、到達することはありません)0%
(たとえば、n=8
およびx=1
で、カバレッジはわずかです88/714 = 12.32%
)。
そのような入力番号が2つある場合、小数点以下2桁までの正確なカバレッジパーセンテージを出力する必要があります。コードが丸めを処理する方法を指定してください。
ルール
- 入力と出力は任意の便利な形式で指定できますが、小数点以下2桁まで正確でなければなりません。コードが丸めを処理する方法を指定してください。
- 他の部品がボード上にないか、そうでなければ動きを妨害しないと仮定します。
- 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。
- 可能であれば、他の人があなたのコードを試すことができるように、オンラインテスト環境へのリンクを含めてください!
- 標準的な抜け穴は禁止されています。
- これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。
例
n = 8, x = 4
43.28
n = 8, x = 8
100 or 100.00
n = 8, x = 1
12.32
n = 4, x = 1
66.67
n = 4, x = 2
60 or 60.00
n = 5, x = 3
75 or 75.00
n = 5, x = 1
47.5 or 47.50