【问题标题】:How to Set certain digits for generating random numbers in C++ [duplicate]如何设置某些数字以在 C++ 中生成随机数 [重复]
【发布时间】:2015-04-03 22:56:59
【问题描述】:

嗨。有没有办法设置随机数的大小?(在随机数生成器“rand()”中)

例如我想生成 10 位随机数。

还有一个问题,如何设置随机函数来生成 0 到 1 之间的数字(例如 0100110110)?

【问题讨论】:

  • 您可以对生成的数字应用位掩码,例如myRand = myRand & 0x3ff;,以确保它仅包含 10 个有效位。
  • 简而言之,没有。您的意思是“10 位”数字中没有前导 0 吗?你知道如何获取一个范围内的随机数吗?
  • @πάνταῥεῖ 猜测 0x3FF 是二进制数 1111111111。这样对吗 ?你能解释一下它到底是做什么的吗?
  • @doctorlove 我的意思是我只希望随机数是二进制形式(0 或 1)
  • @Zchen 一个只有 1 和 0 的十进制数仍然是十进制,而不是二进制。

标签: c++ random binary


【解决方案1】:

我不确定设置数字的大小。但是我认为不可能让每个数字只产生 0 或 1。

但是,您可以执行以下操作:

          ostringstream 10digitNumber;
          for(int i = 0 ; i < 10 ; i ++){

                v1 = rand() % 2;// generate o or 1
                10digitNumber<< v1;// build up a string of 1 and 0

           }
         int real10DigitNumber = static_cast<int>10digitNumber);              //                      typecast to integer

如果我的语法不是 100%,请原谅我。自从我使用 c++ 以来已经有一段时间了。

【讨论】:

猜你喜欢
  • 2016-05-09
  • 2020-06-29
  • 2016-08-20
  • 1970-01-01
  • 1970-01-01
  • 2014-11-10
  • 2012-12-17
  • 2017-10-11
  • 1970-01-01
相关资源
最近更新 更多