第18講 一般種法×末項確定法(魔方陣作成マクロVer.4)への挑戦
第11話 逆転劇!
納得できず、
'ii = n * Rnd
For i = 0 To n - 1
'iii = (ii + i) Mod n
'mah2(b, a) = iii
mah2(b, a) = i
試しにランダムを取り外し再び実験すると
4次の場合
Ver.3 | Ver.4 | Ver.3.5 |
1.76171875 | 1.28515625 | 1.841796875 |
5次の場合
Ver.3 | Ver.4 | Ver.3.5 |
222.1396484 | 3.248046875 | 4.94140625 |
6次の場合
Ver.3 | Ver.4 | Ver.3.5 |
1672.333984 | 7.984375 | 23.95703125 |
すべての次数で勝利しました。
特に、6次では大勝です。
やはり、分析ー総合型の方が速いという結論になりそうです。
尚、公平な比較のためにVer.3.5もランダムを外しましたが、
6次では1分待っても1個できなかったので、実験を中止しました。
If n = 4 Then kk = 3
If n = 5 Then kk = 13
If n = 6 Then kk = 11
If n = 3 Then kk = 1
For i = 0 To n * n - 1
iii = (ii + kk * i) Mod n * n
mah(b, a) = iii + 1
結局前に残しておいた、ピンクの部分が効いてVer.3.5の方がたまたま速かっただけです。
分析ー総合型もシード値を工夫すればより速くなることが予想されます。
そこで、皆さん第16講 魔方陣の作成の高速化(数万倍へ)第7話 自動実験コードを参考に
シード値探索実験を行ってください。
第6話方式をVer.5と名付けましたが、Ver.3.5に戻します。
尚、Ver.4のコードは第12話で解説します。
第10話へ 第12話へ
VBA講義第1部へ
vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
数学研究室に戻る