中学の数学 (8-2) ウラムの螺旋を python で描く
[ サイトマップを見る ]
素数の出現パターン
奇数の出現は規則正しいですね。$${1, 3, 5, 7, 9 \cdots}$$ という具合に一つとびに現れます。
一方,素数の出現の仕方には規則性はないように思えます。
ウラムの螺旋
けれども面白い発見があります。
ウラムは数字を以下のように並べました。
素数だけを表示させると以下のようになります。
もっと続けてみましょう。Python で続きを書いてみました。コードは以下のとおりです。
import matplotlib.pyplot as plt
import matplotlib.patches as patches
import math
fig = plt.figure()
ax = plt.axes()
x, y = 0, 0
l = 2
def right():
return (1, 0)
def up():
return (0, 1)
def left():
return (-1, 0)
def down():
return (0, -1)
def is_prime_number(n):
l = []
l.append(1)
for i in range(2, math.floor(n/2)+1):
if n % i == 0:
l.append(i)
l.append(n)
return(len(l) == 2)
# 素数1を描く
n = 1
if is_prime_number(n):
r = patches.Rectangle(xy=(x, y), width=1, height=1, ec='black', fill=True)
ax.add_patch(r)
# 素数2を描く
x = x + 1
n = 2
if is_prime_number(n):
r = patches.Rectangle(xy=(x, y), width=1, height=1, ec='black', fill=True)
ax.add_patch(r)
# 素数3を描く
y = y + 1
n = 3
if is_prime_number(n):
r = patches.Rectangle(xy=(x, y), width=1, height=1, ec='black', fill=True)
ax.add_patch(r)
n = 4
for l in range(2, 300+1, 2):
xdiff, ydiff = left()
for i in range(1, l+1):
x = x + xdiff
y = y + ydiff
if is_prime_number(n):
r = patches.Rectangle(xy=(x, y), width=1, height=1, ec='black', fill=True)
ax.add_patch(r)
n = n + 1
xdiff, ydiff = down()
for i in range(1, l+1):
x = x + xdiff
y = y + ydiff
if is_prime_number(n):
r = patches.Rectangle(xy=(x, y), width=1, height=1, ec='black', fill=True)
ax.add_patch(r)
n = n + 1
xdiff, ydiff = right()
for i in range(1, l+2):
x = x + xdiff
y = y + ydiff
if is_prime_number(n):
r = patches.Rectangle(xy=(x, y), width=1, height=1, ec='black', fill=True)
ax.add_patch(r)
n = n + 1
xdiff, ydiff = up()
for i in range(1, l+2):
x = x + xdiff
y = y + ydiff
if is_prime_number(n):
r = patches.Rectangle(xy=(x, y), width=1, height=1, ec='black', fill=True)
ax.add_patch(r)
n = n + 1
plt.axis('scaled')
ax.set_aspect('equal')
plt.savefig('sosuu-pattern.png')
実行してみましょう。
素数が現れるところだけ,塗りつぶしてみました。素数のあらわれかたには規則性がないのかな?と思っていましたが,なんだか,斜め45度の線分がいくつか現れています。
これは気のせいなのか,それともなんらかの規則性があることを示唆しているのか?なんだか面白そうなので,もうすこし考えていきましょう。
関連する書籍
[ サイトマップを見る ]
この記事が気に入ったらサポートをしてみませんか?