随机二进制生成器(不是伪)
Random Binary Generator (not pseudo)
我如何生成随机二进制值,比如10位数的0010101001
,我想称其为C1
,然后我想创建另一个名为C2
的随机10位数二进制数。
一些简单的就可以了,比如
int C1
for ( int C1 = 0; <=10; C1++)
output bitset<0>
return 0;
需要存储c1和c2。
如果你想要真正的随机数,你需要你的计算机可能没有的硬件。然而,它可以简单而廉价地添加-例如,请参阅此处。
然而,我认为一个好的伪随机生成器,如Boost附带的那些-参见Boost随机数生成器的例子,将足以满足您的需求
function randomInt(max)
// produces integer with uniform distribution between [0,max)
# this should be in your standard library
# though perhaps not by this name; and you may need to
# initialize and maybe randomly seed your RNG beforehand
myRandomBinaryNumber = randomInt(2^10) // then cast it if required
编辑:在标题
中添加"(非伪)"之前添加此答案编辑:我推荐其他答案中列出的方法,这取决于一个人的需要(伪随机,加密伪随机,真正随机等)
您可能对Ivy Bridge Intel处理器中的rdrand指令感兴趣。它的熵源使用硅内的热噪声(参见DRNG软件实现指南)。
Intel提供rdrand c++库。因此,您需要编写托管c++包装程序集才能在c#中使用它。我刚刚使用库编译了测试项目,但是我的处理器不支持该指令。
听起来您正在寻找BitArray
类或RNGCryptoServiceProvider
类。
在google中搜索[c#随机数],得到的第三个结果是http://social.msdn.microsoft.com/Forums/en/Vsexpressvcs/thread/55fb3116-c978-4ac8-9381-a2605e16e256。
Random random = new Random();
int randomNumber = random.Next(0, 2^10);
话虽这么说,你可能正在寻找一个"伪随机"源。
编辑:将此答案添加到标题
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 为什么 Serial.println(<char[]>);返回随机字符?
- 有根的二进制搜索树.保留与其父级的链接
- 字符串-C++后显示的随机字符
- 多态二进制函数
- 循环中的随机函数
- 在c++构造函数中使用随机字符串生成器
- 如何生成统一的随机二进制数以成对计算C++中的汉明距离?
- 随机访问文件格式,用于分层组织的二进制文件和文本文件
- 二进制树类创建随机节点,断裂
- 如何在C 中生成随机二进制数
- 二进制输出到C++中随机位置的文件
- 给定二进制随机数生成器生成随机浮点数的正确方法
- C++以二进制流的形式读取文件,在中间随机跳过字节
- 创建随机二进制字符串:如何在插入到另一个字符串之前从 to_string() 中删除空字符'