我试图理解 c 中的随机生成函数。
对于我所读到的函数返回的随机数取决于它的初始值,称为种子,对于程序的每次运行都保持相同。这意味着程序生成的随机数序列在程序的每次运行中将完全相同。
所以这是通过使用另一个函数来解决的——srand(seed) ——它将在每次运行时使用不同的种子值,每次运行都会产生一组不同的随机值。并且可以使用系统时钟来为这个随机数生成器提供任意值。总而言之:时间被用作种子值。
因此,在实现 srand(seed) 函数后,随机数生成 reallt 工作正常,但是 - 我不明白种子值总是相同的。我认为关于播种随机数生成器的整个想法是每次程序执行时使用一个新的种子值。但在 Eclipse 的控制台窗口中,种子值似乎每次都相同,即 4071056、4071056、4071056、4071056、4071056、4071056
以及生成的随机数,例如:1,6,5,5,1,4
从http://www.cprogramming.com/tutorial/random.html获得信息
编辑: *我想我现在明白了。在 java 中,这将是 int 和 void 之间的不匹配错误,
int t = srand(time(NULL));
printf("seed value: %d \n", t);
int rand_nmbr = (rand() % 6 + 1);
printf("dice face: %d ", rand_nmbr);