- 58 名前:デフォルトの名無しさん mailto:sage [2019/08/03(土) 11:39:39.93 ID:xpWLAw2C.net]
- >>48 Perl5
sub next_permutation { defined $_[1] and (next_permutation(@_[1..$#_]) or ($_[0] lt $_[1]) and do { for (1..$#_) {$_[0] lt $_[$_] ? $i = $_ : last} @_[0, $i] = @_[$i, 0]; @_[1..$#_] = reverse @_[1..$#_]; 1 }) } #$v = '123'; $v = '5672391'; @a = sort split '', $v; do { $n = join '', @a; print "$n " if $n > $v; } while next_permutation @a; 実行結果 https://ideone.com/qeSGDm CPANなどにあるPermutation計算モジュールを使用しても良いけど、 言語処理系に標準で含まれるモジュールではなく別途インストールが必要なので、 昔書いたnext_permutation iteratorを使ってみた
|

|