加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – rand在不改变种子的情况下改变值

发布时间:2020-12-16 03:46:31 所属栏目:百科 来源:网络整理
导读:参加以下计划: #include cstdlibusing std::rand;#include iostreamusing std::cout;int main(){ cout rand() ' ' rand() ' ' rand() 'n';} 由于rand产生相同的值,只要种子不使用srand更改,这应该产生三个相同的数字. 例如 567 567 567 但是,当我运行这个
参加以下计划:
#include <cstdlib>
using std::rand;

#include <iostream>
using std::cout;

int main()
{
    cout << rand() << ' ' << rand() << ' ' << rand() << 'n';
}

由于rand产生相同的值,只要种子不使用srand更改,这应该产生三个相同的数字.
例如

567 567 567

但是,当我运行这个程序时,它给了我三个不同的值.
例如

6334 18467 41

当程序(编译并)再次运行时,会生成相同的三个数字.在开始从兰特得到不同的结果之前,我不应该使用srand来改变种子吗?这只是我的编译器/实现试图帮我一个忙吗?

操作系统:Windows XP
编译:GCC 4.6.2
图书馆:MinGW

编辑:
通过尝试使用srand,我发现这是种子1的结果(我猜是默认的).

解决方法

每次调用rand()都会生成一个不同的随机数.

种子实际上确定了创建的随机数序列.使用不同的种子将获得另外3个随机数,但您将始终获得给定种子的这3个数字.

如果你想多次使用相同的数字,只需调用rand()一次并将其保存在变量中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读