【问题标题】:Random Number Generator with a Seed带有种子的随机数生成器
【发布时间】:2012-04-14 09:58:14
【问题描述】:

我正在使用 srand(time(NULL)) 生成随机数。 知道为什么它总是给出偶数随机数吗?就我而言,它是如此。请帮助我也需要奇数。 我需要一组 0 和 1。 例如:{1,1,0,0,1,0,0,0,1,1,0}

【问题讨论】:

  • 没有看到你正在使用的代码。
  • 你做错了什么。请向我们展示您的代码。
  • srand(time(NULL)) 只是一个种子。向我们展示您的代码,其中函数 rand() 正在分配数字。

标签: c random srand


【解决方案1】:

打电话

srand(time(NULL));

在程序开始时只有一次,它会“打乱”随机序列。

然后调用

rand();

它会返回一个在0RAND_MAX 范围内的数字。

如果你只想要 0 或 1,那么你可以试试

int n = rand() % 2;

int n = rand() & 0x01;

【讨论】:

    【解决方案2】:

    想想初始化 PRNG 就像初始化一个变量......你不这样做

    // pseudo-code
    // print numbers from 1 to 10
    do 10 times
        number_to_print = 1
        print number_to_print
        number_to_print++
    end loop
    

    同样,srand() 每次程序运行只能调用一次。

    call srand() // initialize PRNG
    loop
        rand()
    end loop
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多