我想在C++中生成一个合理任意长度的随机数.通过"合理的仲裁",我的意思是受到主机的速度和内存的限制.
我们假设:
我想样品长度的十进制数(底为10)ceil(log10(MY_CUSTOM_RAND_MAX))从0至10^(ceil(log10(MY_CUSTOM_RAND_MAX))+1)-1
我有一个 vector<char>
长度vector<char>是ceil(log10(MY_CUSTOM_RAND_MAX))
每个char都是一个整数,一个0到9之间的随机数,用rand()或类似的方法挑选
如果我使用std::random_shuffleshuffle向量,我可以从末尾迭代每个元素,乘以10的递增幂将其转换为unsigned long long或映射到我的最终范围的任何内容.
我不知道它是否有任何std::random_shuffle随机性存在问题,特别是在选择一系列rand()结果来填充时vector<char>.
std::random_shuffle在可量化的意义上,以这种方式生成任意长度的随机数是多么粗略?
(我意识到Boost中有一个用于制作随机int数的库.目前尚不清楚范围限制是什么,但它看起来像MAX_INT.那就是说,我意识到所说的库存在.这更像是关于这一部分的一般性问题. STL在生成任意大的随机数.请提前感谢您将答案集中在这一部分上.)
关于这个问题的重点,我有点不清楚,但我会尝试从几个不同的角度来回答它:
| 归档时间: |
|
| 查看次数: |
576 次 |
| 最近记录: |