ウラムの螺旋(Ulam Spiral)をPythonとSympyで500万まで描いてみる。
ウラムの螺旋というのがある。
https://ja.wikipedia.org/wiki/%E3%82%A6%E3%83%A9%E3%83%A0%E3%81%AE%E8%9E%BA%E6%97%8B
数字をらせん状に置いていき、素数のみ塗っていくと構造(水平線、垂直線、対角線)が見えるというもの。
昔から知っているがそういや自分で描いたことなかった。理由は螺旋に置くいい感じのアルゴリズムが思いつかなかったから…
いい感じじゃなくて愚直にやるなら簡単か、と思ってやってみた。しかもPythonならSympyがあるので素数の判定も簡単。
コードはこんな感じ。
import numpy as np
import matplotlib.pyplot as plt
from sympy import isprime
n = 2302
a =np.zeros((n, n - 1),dtype=np.int64)
#中央
i = n//2 -1
j = n//2 -1
# 1, 2だけあらかじめ入力
a[i, j] = 0
i += 1
a[i, j] = 1
# 螺旋を描く
num = 3
s = 1
for t in range(n//2-1):
for k in range(s):
j -= 1
a[i, j] = isprime(num)
num += 1
s += 1
for k in range(s):
i -= 1
a[i, j] = isprime(num)
num += 1
for k in range(s):
j += 1
a[i, j] = isprime(num)
num += 1
s += 1
for k in range(s):
i += 1
a[i, j] = isprime(num)
num += 1
# 最後の部分
s -= 1
for k in range(s):
j -= 1
a[i, j] = isprime(num)
num += 1
plt.figure(figsize=(50,50))
plt.imshow(a.T, cmap="Greys")
print(num - 1)
|
では100万まで描いたとき。
500万まで描いたとき
対角線がよく見える。実は1億でも普通にできるが、ファイルサイズが大きくなりすぎるので今回はここまで。
« 高周波・RFニュース 2024年7月16日 O-RAN Allianceのミリ波アンテナホワイトペーパー、中国は世界初の6Gフィールドテストネットワークを作ったと主張、KYOCERA AVXが車載MLCC発表、SamsungのLPDDR5XがMediaTekに採用、EricssonとOPPOがクロスライセンス、など | トップページ | 高周波・RFニュース 2024年7月17日 Microwave Journal 7月号でアンテナチューニングデバイスのRF-MEMSスイッチによるテスト,IEEE Journal of Microwavesでミリ波の人体への影響レビュー,韓国がITUの6G標準化主導、5G americasのホワイトペーパーSpectrum Sharingなど »
「パソコン・インターネット」カテゴリの記事
- RF Weekly Digest (Gemini 3.5 Flash・Google AI Studio BuildによるAIで高周波・RF情報の週刊まとめアプリ)2026/5/31-6/7(2026.06.07)
- RF Weekly Digest (Gemini 3.1 Pro・Google AI Studio BuildによるAIで高周波・RF情報の週刊まとめアプリ)2026/5/24-5/31(2026.05.31)
- RF Weekly Digest (Gemini 3.1 Pro・Google AI Studio BuildによるAIで高周波・RF情報の週刊まとめアプリ)2026/5/17-5/24(2026.05.24)
- Microsoft 365 Copilot Chat(GPT-5.5 Think Deeper)でサザエさんじゃんけん予測アプリをいろいろな予測アルゴリズムを扱えるように作り直してもらう。5/24は勾配ブースティング系だけがパーを出すと予測、ランダムフォレストやLSTM、マルコフ連鎖などは全てチョキと予想。(2026.05.24)
- ExcelのCopilotのPlanモードで、サザエさんじゃんけんの次回の予測をやってもらう。予測法はいろいろ挙げてもらって推奨のランダムフォレストにしてもらった。次回はチョキと予測(Codexはパーと予測)。(2026.05.21)
「学問・資格」カテゴリの記事
- RF Weekly Digest (Gemini 3.5 Flash・Google AI Studio BuildによるAIで高周波・RF情報の週刊まとめアプリ)2026/5/31-6/7(2026.06.07)
- 高周波・RFニュース 2026年6月4日 Qualcommが6Gウェビナー開催、Next G Allianceが5G ISACイニシアティブ立ち上げ、Keysightが新RFシグナルアナライザ発表、アンリツが5G LTM評価環境構築(2026.06.04)
- 高周波・RFニュース 2026年6月3日 BroadcomがブロードバンドエッジAIポートフォリオ発表、Marvellが102.4Tbpsスイッチ発表、Mini-CircuitsがLTCC・MMICフィルタのカスケード接続解説、ASUSのミニPCにSnapdragon X2 Elite、KeysightとNTTドコモ・NTTが6Gシミュレーション協業(2026.06.03)
- 高周波・RFニュース 2026年6月2日 QualcommがSnapdragon C発表&6G解説記事、アンリツが140Gbaudバイアスティ内蔵 広帯域リニアアンプ発売、SONY Xperia 10 VII分解動画など(2026.06.02)
- RF Weekly Digest (Gemini 3.1 Pro・Google AI Studio BuildによるAIで高周波・RF情報の週刊まとめアプリ)2026/5/24-5/31(2026.05.31)
「日記・コラム・つぶやき」カテゴリの記事
- RF Weekly Digest (Gemini 3.5 Flash・Google AI Studio BuildによるAIで高周波・RF情報の週刊まとめアプリ)2026/5/31-6/7(2026.06.07)
- 高周波・RFニュース 2026年6月4日 Qualcommが6Gウェビナー開催、Next G Allianceが5G ISACイニシアティブ立ち上げ、Keysightが新RFシグナルアナライザ発表、アンリツが5G LTM評価環境構築(2026.06.04)
- 高周波・RFニュース 2026年6月3日 BroadcomがブロードバンドエッジAIポートフォリオ発表、Marvellが102.4Tbpsスイッチ発表、Mini-CircuitsがLTCC・MMICフィルタのカスケード接続解説、ASUSのミニPCにSnapdragon X2 Elite、KeysightとNTTドコモ・NTTが6Gシミュレーション協業(2026.06.03)
- 高周波・RFニュース 2026年6月2日 QualcommがSnapdragon C発表&6G解説記事、アンリツが140Gbaudバイアスティ内蔵 広帯域リニアアンプ発売、SONY Xperia 10 VII分解動画など(2026.06.02)
- RF Weekly Digest (Gemini 3.1 Pro・Google AI Studio BuildによるAIで高周波・RF情報の週刊まとめアプリ)2026/5/24-5/31(2026.05.31)
« 高周波・RFニュース 2024年7月16日 O-RAN Allianceのミリ波アンテナホワイトペーパー、中国は世界初の6Gフィールドテストネットワークを作ったと主張、KYOCERA AVXが車載MLCC発表、SamsungのLPDDR5XがMediaTekに採用、EricssonとOPPOがクロスライセンス、など | トップページ | 高周波・RFニュース 2024年7月17日 Microwave Journal 7月号でアンテナチューニングデバイスのRF-MEMSスイッチによるテスト,IEEE Journal of Microwavesでミリ波の人体への影響レビュー,韓国がITUの6G標準化主導、5G americasのホワイトペーパーSpectrum Sharingなど »




コメント