06/01/14 18:24:26
>>475
素直に組めばこんなもんかな
Option Explicit
Permutation 9
Private Sub Permutation(N)
WScript.Stdout.WriteLine "N = " & CStr(N)
Dim A(): ReDim A(N - 1)
Dim I: For I = 0 To N - 1: A(I) = I + 1: Next
PermutationSub A, 0, N - 1
End Sub
Private Sub PermutationSub(A, N, M)
If N <= M Then
Dim I
For I = N To M
Swap A(N), A(I):PermutationSub A, N + 1, M: Swap A(N), A(I)
Next
Else
WScript.Stdout.WriteLine Join(A, " ")
End If
End Sub
Private Sub Swap(X, Y)
Dim W: W = X: X = Y: Y = W
End Sub
うちの環境だと、N が 568 以上だとスタックオーバーフローするけどな。