第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話へ

004
  

VBA講義第1部へ
vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ

数学研究室に戻る