Perl 初心者コーナー Part22
■ このスレッドは過去ログ倉庫に格納されています
0018nobodyさん
03/04/15 18:25ID:0B+FeJbY・やりたいこと
24bitsカラーコードを、無作為に選んで並び替えたい。
・やってみたこと。
24bits分の配列を用意して、無作為に選び、別の配列へ代入させてみた。
my @src_colors=(0..16777215);
my @dist_colors;
foreach(0..16777215){
push(@dist_colors,splice(@src_colors,int(rand($#src_colors+1)),1));
}
・結果
Out of memoryとなる。
そもそも64MBytesもある配列を用意している時点でアウトなんだと思うのですが、ほかに良い方法が思い浮かびませんでした。
(外部ファイルを使って同じ方法を。と思ってみたのですが、こちらも「重複するカラーコードを排除する」という点で同じような配列を使ったためにOut of memoryとなってしまいました。)
そこで、別の方法論がありましたらご教授いただけるとありがたいです。
それではよろしくおねがいいたします。
■ このスレッドは過去ログ倉庫に格納されています