#/*********************************************************** # nextperm.rb -- 界误 #***********************************************************/ N = 6 $p = [] def nextperm # 辑今及界进で肌の界误 i = N - 1 $p[0] = 0; # 戎客 while ($p[i] >= $p[i + 1]); i -= 1; end if (i == 0); return 0; end # 窗位 j = N while ($p[i] >= $p[j]); j -= 1; end t = $p[i]; $p[i] = $p[j]; $p[j] = t i += 1; j = N while (i < j) t = $p[i]; $p[i] = $p[j]; $p[j] = t; i += 1; j -= 1 end return 1; # 踏位 end count = 0 for i in 1..N; $p[i] = i; end begin printf("%5d: ", count += 1) for i in 1..N; printf("%4d", $p[i]); end printf("\n") end while (nextperm() == 1) exit 0