首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rand()命令每次生成相同的数字

Rand()命令每次生成相同的数字
EN

Stack Overflow用户
提问于 2021-09-05 18:50:49
回答 2查看 67关注 0票数 0

我在一个循环中使用rand()每次生成随机数,直到循环完成,但它总是给出相同的数字,我做错了什么?

代码语言:javascript
复制
 bool PlayGame(int Difficulty, bool bComplete)
{

    
    int CodeA =rand() % Difficulty + Difficulty;
    int CodeB =rand() % Difficulty + Difficulty;
    int CodeC =rand() % Difficulty + Difficulty;
EN

回答 2

Stack Overflow用户

发布于 2021-09-05 18:54:08

通过在开始时设置srand(time(0));,可以将当前时间用作随机生成器的种子

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
// Driver program
int main(void)
{
    // This program will create different sequence of
    // random numbers on every program run
 
    // Use current time as seed for random generator
    srand(time(0));
 
    for(int i = 0; i<4; i++)
        printf(" %d ", rand());
 
    return 0;
}


Output 1:
453 1432 325 89

Output 2:
8976 21234 45 8975

Output n:
563 9873 12321 24132

Ref.

票数 2
EN

Stack Overflow用户

发布于 2021-09-05 18:56:01

如果在没有首先调用srand()的情况下使用rand()生成随机数,您的程序将在每次运行时创建相同的数字序列。

srand()函数设置产生一系列伪随机整数的起始点。如果未调用srand(),则会将rand()种子设置为srand(1)

因此,在程序开始时设置srand(time(0));

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69066320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档