パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

プログラム作成のパターン(ウラムの螺旋をプチコンで描いてみる)

2019-07-12 | プログラムをマスター計画2020

プログラムの作成のパターンを説明してみます。

 

これはウラムという人が会議の最中に暇つぶしに書いたもので、

素数に何らかの規則性があるのではないかという図。

 

ウラムさん最初に数字を順にらせんに書いて

その数字の中で素数だけ色をつけたもの。

下が39999までやってみた例です。なぜか縦横斜めに線が現れます。

<プログラムの作成手順>

着手しようとしたのは数日前、らせんに巻くという部分のアルゴリズムできるかなと数日悩みます。

頭の中で考えても進まないなと手を動かし始めます(プログラム開始)

 

できるところからはじようとまず素数の一覧を作成します。(1〜11行)

 同じようなことを一箇所で何度も繰り返す時にループさせます。(9〜11)

 同じようなことが離れて何箇所もある時は関数を作ります。(3〜8)(今回は作らなくてもよかった)

 

次に画面に点を表示させるために、まずどうやって点を打つか調べます

33行のGPSET

 

そしてこの螺旋の法則を掴みます

右、上、左、下を繰り返します。

長さは、2,2,3,3,4,4,5,5,6,6,7,7...と2つ曲がると1つ増えていきます。

 

ということでメインルーチン(プログラムの中核部分)の作成に入ります。

メインルーチンに入る前にたいてい中で扱われるデータの下準備をします。

18-29は螺旋の法則を計算する前段階です。

メインルーチンは 表示(33-36)、次の場所の計算(37-42) の繰り返しです。

(表示と次の計算、逆もあります)

 

ケームなども実はあまり変わらず

この繰り返しの中に、操作と終了判定(33)があるぐらいです。

 

<後記>

ウラムの螺旋を何で作ろうかと思っていたのですが、

WiiUの内蔵電池を入れ替えたので、プチコンBIGでつくってみることにしました。

プチコン3号で動かない時はPNの数を減らせば動くとおもいます。

螺旋をまわすところと配列に固定値を代入する場所に手間取りました。

 

双子素数とセクシー素数で色を変えてみたのですが、

特に新発見ならず。ウラムの螺旋の特徴も消してしまう感じだったので色の違いをうすくしてます。

 

<参考文献>

Newtonライト 数字のせかい 数の神秘編



最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。