emath BBS

新規発言一覧最新記事過去一覧検索HOME

No.7303  Re[2]:ランダムな順列の作り方
発言者: 飯島 徹
発言日: 2008 06/03 00:54
発言元: flh1adm062.hkd.mesh.ad.jp
みなさん,こん○○は^^飯島です

それでは私はPerlを使った並べ替えを^^

以下のshuffle.plをc:\Perl\site\libフォルダなどに置いておきます.
#---------- shuffle.pl ----------------------
#!Perl -w
use strict;

sub ShuffleArray () {
 my $array = shift;
 my $len = scalar(@$array);
 
 for(my $i=$len-1 ; $i>=0; --$i){
  my $j = int( rand($i+1) );
  next if($i==$j);
  @$array[$i, $j] = @$array[$j, $i];
 }
 
}

sub Shuffle () {
 my @array = @_;
 &ShuffleArray(\@array);
 my $result = "";
 foreach (@array) {
  if ( $result eq "" ) {
   $result = $_;
  } else {
   $result = $result . "," . $_;
  }
 }
 $result;
}
1;
#----------------------------------------------

以下のtemp.texをコンパイルするとコンパイルのたびに
0〜9の数字が入れ替わると思います^^
%-------------- temp.tex ----------------------
\documentclass{jarticle}
\usepackage[perl]{emathRn}
%\usepackage{emathPp}
\myPerlLib{shuffle.pl}%
\begin{document}

\calcval[s]{Shuffle(0,1,2,3,4,5,6,7,8,9)}\temp
\temp
\end{document}
%-----------------------------------------------

▼関連発言

7301:ランダムな順列の作り方 [st] 06/02 21:55
 └7302:Re:ランダムな順列の作り方 [田中徹] 06/03 00:43
  └7303:Re[2]:ランダムな順列の作り方 [飯島 徹] 06/03 00:54
   └7304:Re[3]:ランダムな順列の作り方 [田中徹] 06/03 01:09
    └7305:Re[4]:ランダムな順列の作り方 [飯島 徹] 06/03 01:23
     └7306:Re[5]:ランダムな順列の作り方 [飯島 徹] 06/03 01:55
      └7308:Re[6]:ランダムな順列の作り方 [st] 06/03 11:46
       ├7316:Re[7]:ランダムな順列の作り方 [田中徹] 06/03 23:15
       │└7317:Re[8]:ランダムな順列の作り方 [飯島 徹] 06/04 03:51
       │ └7318:Re[9]:ランダムな順列の作り方 [st] 06/04 23:24
       │  └7319:Re[10]:ランダムな順列の作り方 [飯島 徹] 06/05 01:41
       │   └7320:Re[11]:ランダムな順列の作り方 [st] 06/05 05:09
       └7321:Re[7]:ランダムな順列の作り方 [石原 守] 06/05 10:14
        └7323:Re[8]:ランダムな順列の作り方 [st] 06/05 21:47<-last

Pass 保存


CGIROOM