(1)手动输入种子个数
#include <iostream>
using namespace std;

int main()
{
unsigned seed;
cout << "Enter a seed: ";
cin >> seed;
srand(seed);
for(int y = 1; y <= seed; y++)

展开全部
收起
4回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Thom

    12人对此回答表示赞同

    代码没什么问题,
    但是你就取1~6的随机数,
    还取6000次(后面一个程序),
    能不重复吗?

    你这么看看:
    int main()
    {
    int number = 6000;
    srand(time(0));
    for(int y = 1; y <= number; y++)
    {
    if (y % 10 == 0)
    cout << rand() % 60
    展开
    12
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Paisley888

    12人对此回答表示赞同

    C++随机函数rand的机理应该是根据你给定的种子seed来利用固定的多项式产生,当你种子相同的时候这时候产生的随机数肯定相同。

    所以很多时候我们用时间做种子,时间每时每刻都不一样,所以肯定产生的随机数也不一样。

    第二种方法只要把srand(time(0))放在循环里面应该就可以了。第一种方法也是,不过手工提供种子不赞成~
    展开
    12
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Isabel

    9人对此回答表示赞同

    请注意,C++的随机数函数为伪随机数函数,并不是真正的随机数函数,它根据设定的种子的值来产生随机数,即使是使用时间函数来做种子,对于现在的计算机来说,运行复杂度如此简单的程序,不可能用到1秒吧。。。注time(0)返回值是系统从1970年1月1日00:00:00到现在总共的秒数。。。。
    你的明白???
    展开
    9
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Carlos

    1人对此回答表示赞同

    你给的程序完全没有问题,确实是产生随机数的。

    但你的理解有问题。前后一样,并不是就“不随机”。

    你抛硬币,出现正面和反面的情况是完全随机的,但有可能两次都是正面或者反面啊。
    展开
    1
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部