第9講 プロシージャの再帰的使用
第5話 2次順列をプロシージャの再帰的使用を使わずにFor文で実現する
2次順列生成プログラム
Module Module1

  Sub Main() '私は社長だ。
    f (2)
  End Sub

  Sub f(n As Integer)
    Dim i, j, k, h, x(24), cn As Integer '将来5次魔方陣まで生成できるように!
    cn = 0
    For i = 0 To n - 1
      x(0) = i + 1
      For j = 0 To n - 1
        h = 1
        If j + 1 = x(0) Then h = 0
        If h = 1 Then x(1) = j + 1
        If h = 1 Then
          cn += 1
          For k = 0 To n - 1
            Console.Write("{0:d} ", x(k))
          Next
          Console.WriteLine()
        End If
      Next
    Next
    Console.WriteLine("生成された{0:d}次順列は{1:d}個です。", n, cn)
  End Sub

End Module

実行画面
1 2
2 1
生成された2次順列は2個です。


配列の宣言は今回は2次順列なので、
    Dim x(1) As Integer
で良いのですが、第10講において魔方陣の自動生成に挑戦する際に、
5次魔方陣まで対応できるように配列のサイズを大きめにとってあります。
24のときは、配列のサイズは25です。
配列の添え字は0から始まるからです。

次は3次順列生成プログラムへの挑戦です。
頭が爆発するほど難しいですが、
粘り強く開発して下さい。

第4話へ   第6話へ

002

初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc** c言語 c** 入門 初心者 基礎から応用まで
eclipse c** 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C**入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC**による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ