rand.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | /*
stdlib.h [rand]
書式: int rand(void)
機能: 擬似乱数 (ランダム数) の取得
引数: なし
戻り値: 0 ~ RAND_MAX までの整数である乱数を返す
*/
/*
rand() のみでは, プログラムを実行する度に同じ乱数が生成されてしまう.
毎回違う乱数を発生させるには, srand() を組み合わせる.
*/
#include <stdio.h>
#include <stdlib.h> /* rand */
int main(void){
int i;
for(i = 0; i < 20; i++){
if (i % 4 == 0) printf("\n");
printf( "%10d\t", rand() );
}
printf("\n");
return 0;
}
|
rand.c の実行結果は:
[cactus:~/code_c/refer]% ./rand
16807 282475249 1622650073 984943658
1144108930 470211272 101027544 1457850878
1458777923 2007237709 823564440 1115438165
1784484492 74243042 114807987 1137522503
1441282327 16531729 823378840 143542612
[cactus:~/code_c/refer]% ./rand
16807 282475249 1622650073 984943658
1144108930 470211272 101027544 1457850878
1458777923 2007237709 823564440 1115438165
1784484492 74243042 114807987 1137522503
1441282327 16531729 823378840 143542612
srand.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | /*
stdlib.h [srand]
書式: void srand(unsigned int seed)
機能: 擬似乱数 (ランダム数) の種を設定
引数: unsigned int seed: 乱数の種
戻り値: なし
*/
/*
乱数の種 (seed) とは, rand() で発生させる乱数系列のようなもので,
種が同じだと, 同じ乱数が発生するわけ.
そのため, rand() を使用する際には, 必ず srand() を読んでから乱数
を使う.
*/
#include <stdio.h>
#include <stdlib.h> /* srand */
#include <time.h>
int main(void){
int i;
srand( (unsigned int)time(NULL) );
for(i = 0; i < 20; i++){
if (i % 4 == 0) printf("\n");
/* 0 ~ 99 */
printf( "%10d\t", rand() % 100 );
}
printf("\n");
return 0;
}
|
srand.c の実行結果は:
[cactus:~/code_c/refer]% ./srand
57 49 78 87
12 38 74 70
28 20 10 87
17 74 16 30
49 81 65 21
[cactus:~/code_c/refer]% ./srand
85 98 29 25
38 79 50 41
79 15 23 53
44 42 64 48
63 97 31 69
[cactus:~/code_c/refer]%