使用指定值在 C 中播种 rand()
Seeding rand() in C with Specified Values
如果您希望随机数生成器使用整数 2,5,7,4 并且您使用
作为生成器的种子
srand(2,5,7,4)
printf("%d \n",rand())
这样做有缺陷吗?
这不是它的工作原理。 PRNG 使用算法生成具有随机行为的数字序列。对于给定的种子,将生成给定的数字序列,这些数字是什么完全取决于所使用的算法。
要获取列表的随机数,您需要类似以下内容:
n = list[rand() % (sizeof(list) / sizeof(list[0])];
如果您想在每次执行时从给定数组中随机打印一个值,您可以考虑使用以下方法:
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main() {
srand ( time(NULL) ); // accepts one argument only
int myArray[4] = { 2,5,7,4 }; // array required
int randomIndex = rand() % 4; // limiting randomness
int randomValue = myArray[randomIndex]; // choosing one of the random numbers
printf("Random value from array: %d\n", randomValue); // simply prints
return 0;
}
如果您希望随机数生成器使用整数 2,5,7,4 并且您使用
作为生成器的种子srand(2,5,7,4)
printf("%d \n",rand())
这样做有缺陷吗?
这不是它的工作原理。 PRNG 使用算法生成具有随机行为的数字序列。对于给定的种子,将生成给定的数字序列,这些数字是什么完全取决于所使用的算法。
要获取列表的随机数,您需要类似以下内容:
n = list[rand() % (sizeof(list) / sizeof(list[0])];
如果您想在每次执行时从给定数组中随机打印一个值,您可以考虑使用以下方法:
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main() {
srand ( time(NULL) ); // accepts one argument only
int myArray[4] = { 2,5,7,4 }; // array required
int randomIndex = rand() % 4; // limiting randomness
int randomValue = myArray[randomIndex]; // choosing one of the random numbers
printf("Random value from array: %d\n", randomValue); // simply prints
return 0;
}