使用指定值在 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;
}