为了账号安全,请及时绑定邮箱和手机立即绑定

如何在C ++中生成随机数?

如何在C ++中生成随机数?

C++
鸿蒙传说 2019-08-08 10:45:26
如何在C ++中生成随机数?我正在尝试用骰子制作游戏,我需要在其中有随机数字(模拟模具的两侧。我知道如何在1到6之间进行)。运用#include <cstdlib> #include <ctime> #include <iostream>using namespace std;int main() {     srand((unsigned)time(0));     int i;    i = (rand()%6)+1;     cout << i << "\n"; }效果不好,因为当我运行程序几次时,这是我得到的输出:611111222252所以我想要一个每次都会产生不同随机数的命令,而不是连续5次产生不同的随机数。有没有命令可以做到这一点?
查看完整描述

3 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

测试应用程序的最基本问题是您调用srand一次,然后调用rand一次并退出。

整个srand功能点是用随机种子初始化伪随机数序列。这意味着如果您将相同的值传递给srand两个不同的应用程序(具有相同srandrand实现),那么您将获得完全相同的rand()值序列。但是你的伪随机序列只包含一个元素 - 你的输出由不同的伪随机序列的第一个元素组成,这些元素以1秒精度的时间播种。那你期望看到什么?当您碰巧在同一秒运行应用程序时,您的结果当然是相同的(正如Martin York在答案评论中已提到的那样)。

实际上你应该拨打srand(seed)一次,然后rand()多次打电话并分析这个序列 - 它应该是随机的。


查看完整回答
反对 回复 2019-08-08
  • 3 回答
  • 0 关注
  • 1695 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信