初学者のためのプログラミング学習サイトウラムの螺旋[Pythonプログラミング]ウラムの螺旋を描いてみる2020年12月19日カテゴリ:プログラミングPython今回はウラムの螺旋についてです。ドラマ「危険なビーナス」を見ていて気になってしまったのでこれを作るプログラムを作成してみようと思います。解説動画はこちらまずウラムの螺旋とは数学者のウラムさんが発見と言うか作った素数をとある法則に従って並べた図形です。1から渦巻状に数値を配置する際に素数だけ残すと、対角線状に素数が残ります。1から数値を並べるところを考えていきましょう。25最初にN*Nの箱を作ります。次に入れる数値の生成ですね。こんな感じでN*Nの数値のリストを作ります。25]]ここでは螺旋状に数値を入れる際に折り返しがあるので入れる数値のリストの半分のところで折り返すようにしています。真ん中のところで右に折り返すように数値を入れていくと螺旋状に数値が並んだリストが生成できます。次に素数だけを残すようにしてみましょう。sympyのisprimeと言うメソッドで素数判定ができます。これを使って素数の部分だけを残すように変えてみます。-はいこれで素数だけ残りましたね。次は塗りつぶしですが数値を文字列に変えるだけでできます。■これだと使いづらいので画像にするようにしてみましょう。matplotlibではリストを投入するとそのまま画像化できます。素数を0,他は255を入れたリストを作ってplotするだけです。1000x1000100万までの素数でウラムの螺旋を作ってみましょう。uram4(1000)plt.figure(figsize=(10,10))plt.imshow(data)plt.axis("off")plt.show()メモリとCPUが強力であればもっと大きな螺旋も描けると思います。これ以上はなかなかに痺れますね。素数の法則は見つかっていないと思いますが、なんかロマンがある図形ですね。お暇な方は試してみてください。CodeWhispererで爆速コーディングコーディングに迷った際に役に立ちWEB検索する時間を無くして作業時間を効率化できます。