どうやらそう!3つの簡単なステップで。
ステップ1
ましょうF(nは)プライムカウント機能を(素数の数より少ないか等しい示すN)。
整数シーケンス s(n)を次のように定義します。各正の整数nに対して、
- tをnに初期化します。
- 限りtはプライムでも1でもない、置き換えるトンをすることにより、F(T)と反復します。
- 反復回数はs(n)です。
すべてのnについてf(n)< nであるため、反復プロセスは終了することが保証されています。
たとえば、n = 25を考えます。t = 25 を初期化します。これは素数でも1でもないため、f(25)(9)を計算します。これがtの新しい値になります。これは素数でも1でもないため、f(9)は4です。f(4)は2です。これは素数なので、ここで停止します。3回の反復を行いました(25から9、次に4、次に2)。したがって、s(25)は3です。
シーケンスの最初の40の用語は次のとおりです。シーケンスはOEISにはありません。
0 0 0 1 0 1 0 2 2 2 0 1 0 2 2 2 0 1 0 3 3 3 0 3 3 3 3 3 0 3 0 1 1 1 1 1 0 2 2 2
ステップ2
奇数の正の整数Nが与えられた場合、有限シーケンスs(1)、s(2)、...、s(N 2)を巻いて正方形の外向きらせんを形成することにより、N×N配列(行列)を構築します。たとえば、N = 5の場合、スパイラルは
s(21) s(22) s(23) s(24) s(25)
s(20) s(7) s(8) s(9) s(10)
s(19) s(6) s(1) s(2) s(11)
s(18) s(5) s(4) s(3) s(12)
s(17) s(16) s(15) s(14) s(13)
または、値を置き換えて、
3 3 0 3 3
3 0 2 2 2
0 1 0 0 0
1 0 1 0 1
0 2 2 2 0
ステップ3
N×N配列を、灰色のカラーマップまたは好みの他のカラーマップのイメージとして表します。番号の順序が視覚的に明らかな色の順序に対応するように、マップは緩やかでなければなりません。以下のテストケースは、カラーマップの例を示しています。
チャレンジ
奇数の正の整数Nを指定すると、上記の画像が生成されます。
ルール
らせんは外側にある必要がありますが、時計回りまたは反時計回りにすることができ、右(上記の例のように)、左、下、または上に動き始めることができます。
水平軸と垂直軸のスケールは同じである必要はありません。また、軸ラベル、カラーバー、および同様の要素はオプションです。スパイラルがはっきりと見える限り、画像は有効です。
画像は、標準的な手段で出力できます。特に、画像を画面に表示したり、グラフィックファイルを作成したり、RGB値の配列を出力したりできます。ファイルまたは配列を出力する場合は、表示されたときの表示例を投稿してください。
入力手段と形式は通常どおり柔軟です。プログラムまたは機能を提供することができます。標準的な抜け穴は禁止されています。
バイト単位の最短コードが優先されます。
テストケース
次の画像(クリックすると最大解像度になります)は、Nのいくつかの値に対応しています。上の例のように、右回りの時計回りのスパイラルが使用されます。画像はいくつかの有効なカラーマップも示しています。
imshow
が行うように、1を超えるすべての値に同じ色が与えられている場合は受け入れられません
imshow
。
s(n)
変更せずにいくつかのプロット関数/パッケージimshow
に渡すことができる場合(たとえば、matplotlibではこれを処理できると思います)、これは許容可能な出力形式ですか?