C语言产生随机数的方法
#include<stdio.h>
#include<stdlib.h>
//计算
int main_1(){
double oldrand[54], randomseed;
double prev_random,new_random=0.000009;
int ii, j1;
while (1){
for (j1 = 0; j1 < 54; j1++)
oldrand[j1] = 0.0;
do{
printf("随机数种子[0 - 1]:");
scanf_s("%lf", &randomseed);
} while ((randomseed < 0.0) || (randomseed > 1.0));
oldrand[54] = randomseed;
prev_random = randomseed;
for (j1 = 1; j1 <= 54; j1++)
{
ii = (21 * j1) % 54;
oldrand[ii] = new_random;
new_random = prev_random - new_random;
if (new_random < 0.0) new_random = new_random + 1.0;
prev_random = oldrand[ii];
}
for (j1 = 0; j1 < 24; j1++)
{
new_random = oldrand[j1] - oldrand[j1 + 31];
if (new_random < 0.0) new_random = new_random + 1.0;
oldrand[j1] = new_random;
}
for (j1 = 24; j1 < 54; j1++)
{
new_random = oldrand[j1] - oldrand[j1 - 24];
if (new_random < 0.0) new_random = new_random + 1.0;
oldrand[j1] = new_random;
}
printf("输出随机数:");
for (j1 = 0; j1 < 54; j1++)
{
if (j1 % 9 == 0)printf("\n");
printf("%lf ", oldrand[j1]);
}
printf("\n\n");
}
return 0;
}
//随机数函数产生
int main(){
int randomseed, rand_num,div=0;
while (1){
printf("输入随机数种子:");
scanf_s("%d", &randomseed);
srand(randomseed+div);
for (int i = 0; i < 54; i++){
if (i % 9 == 0)printf("\n");
rand_num = rand();
printf(" %6d ", rand_num);
}
div = rand_num;
printf("\n\n");
}
return 0;
}