2006年09月06日

[c]配列のランダマイズ


#include <stdio.h>
#include <stdlib.h>

#define MAXPIECE 50

void swap(int *x, int *y){
int tmp;

tmp = *x;
*x = *y;
*y = tmp;
}

void shuffle(int *x){
int i;
int j;
srand((unsigned)time(NULL));
for(i = 1; i < MAXPIECE ; i++){
j = rand() % (i+1);
swap((x+i),(x+j));
}
}



int main(){
int piece[MAXPIECE];
int i;
int j;
for (i = 0; i < MAXPIECE; i++){
piece[i] = i + 1;
}
shuffle(&piece);
  return 0;
}
タグ:C
posted by Belial at 15:44 | Comment(0) | TrackBack(0) | プログラミング | このブログの読者になる | 更新情報をチェックする

2006年09月05日

[Perl]配列のシャッフル〜


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

@piece = (1..50);

&shuffle(\@piece);

foreach(@piece){
print $_;
print ",";
}
<>;
タグ:Perl
posted by Belial at 23:09 | Comment(0) | TrackBack(0) | プログラミング | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。