gpt4 book ai didi

algorithm - 位与int/float随机数生成器的关系

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:27:27 25 4
gpt4 key购买 nike

我想弄清楚 int 或 float 的位和 RNG 之间的关系。

(随机我的意思是均匀分布)


我得到了一个完美 bool 随机生成器,我被要求实现一个随机的 32 位整数生成器(包括负数、零和正数)。我想要做的是为 32 位中的每一位生成一个随机 bool 值,并将它们连接在一起成为一个随机整数

我做的对吗?


同样从另一个角度来看,如果给我一个完美随机 32 位整数生成器,我可以说每个位都可以被认为是均匀分布在 0 和 1 上吗?


float怎么样(不仅是0到1之间,而是float的全范围)?

我可以使用相同的方式生成随机 IEEE 745 float 吗?

最佳答案

是的,你确实做对了,使用 32 次不同号码的抽奖,会给你一个均匀分布的随机变量。

说明:每个号码都可以通过 32 0/1 开奖的独特组合生成。同一个组合不会生成 2 个数字,2 个组合也不会生成任何数字 - 也就是说,每个数字的概率为 1/2^32 - 正如预期的那样。


是的,同样的原则适用于此。有 2^32 种“方式”来选择 32 位数字,与上一个问题类似 - 您可以看到数字独立均匀分布在每位 {0,1} 上。


randUnsignedInt()/(2^32-1) 可以生成 [0,1] 范围内的随机均匀分布 float 。另一种方法是绘制一个 int 并重新解释它的 float - 假设两者都使用相同的位数(基本上 - 都是 32 位数字,它们只是在你解释它们的方式上有所不同。 ..) 请注意,备选方案不在 [0,1] 范围内。

关于algorithm - 位与int/float随机数生成器的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22939125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com