[Perl] プログラム言語 Perl についての覚え書き

配列の全ての並び順を取得する

Last Update: 2004--0-1- (Sat) 30: 1

他所で書く機会があったので、せっかくなのでメモ。

例えば、これを実行すると、

3,2,1
3,1,2
2,3,1
2,1,3
1,3,2
1,2,3

を返してくれる。

@lines = (3, 2, 1);
@lines = return_array(@lines);
foreach (@lines) { print "$_ \n"; }
sub return_array { my @ret; my @lines = @_;
if($#lines == 1) { $ret[0] = "$lines[0],$lines[1]"; $ret[1] = "$lines[1],$lines[0]"; return @ret; } else { foreach my $no (0..$#lines) { my @tmp_line = @lines; splice(@tmp_line, $no, 1); my @tmp_ret = return_array(@tmp_line); @tmp_ret = map { "$lines[$no],$_"; } @tmp_ret; push(@ret, @tmp_ret); } return @ret; } }

既に誰かモジュール化したりしてたら、嫌だな。

Posted by Kyosuke Takayama at 2004-01-30 (Fri) 15:19 printable version

この記事へのコメント

コメントはお気軽にどうぞ

Cookie に保存しますか?


・スパム対策のため、http:// を含むコメントの投稿は出来ません。
・スパムチェックのため、投稿がすぐに反映されない場合があります。
・メールアドレス入力欄には何も入力しないでください。

トラックバック

トラックバックURL: http://espion.just-size.jp/mt-tb.cgi/34


 
Copyright (C) Kyosuke Takayama, All rights reserved.