2011年1月12日水曜日

メモ:Perlで乱数生成

指定された範囲の自然数(1から100とか)から、指定された回数だけ重複を許さずにランダムに自然数を生成する。更にその試行を指定された数だけ繰り返し、乱数生成の回数を10回ずつとか増やしていく。そんなスクリプト。今んとこ需要が1つしかないですけど、取り合えず上げとく。

use strict;
use warnings;

print "program started ! \n";
for(my $num=9; $num<=70; $num+=10) {
     for(my $rep=1; $rep<=50; $rep++){
          my @tmp = (1 .. 80);
#         print @tmp;
          my @out = ();
          while($#out < $num) {
               push(@out, splice(@tmp, int(rand($#tmp)), 1));
          }
          my $num2=$num+1;
          print ("Num$num2,Rep$rep\n",join(',',@out),"\n");
      }
}


とりあえず、自分の担当するのはこれによって生成された乱数の組を配列の要素の番号(これが遺伝子番号に相当する)に対応させて、その配列の要素には各樹形のsite-likelihoodsを格納しておけば、目的の解析は出来るだろう。あとは二番目のループ文にそこらへんの作業と検定とかの作業を組み入れればいいかな。

0 件のコメント: