均匀分布与天真的洗牌?
php小编小新将为大家揭秘"均匀分布与天真的洗牌"之间的关系。在计算机科学中,洗牌是一种重要的操作,常用于随机化数据或集合。而均匀分布是指在一定范围内的随机数分布是平均的。那么,洗牌是否能保证均匀分布呢?答案并不简单,让我们一起来探讨这个问题。
问题内容
我正在对一个 3 int 数组进行 600 万次洗牌。我在地图中记录数组的每个排列。下面是使用 go 的代码。
package main import ( "fmt" "math/rand" "time" ) func randrange(min, max int) int { return rand.intn(max-min+1) + min } func naiveshuffle(arr *[3]int) { for i := 0; i < 3; i++ { e := randrange(0, 2) arr[e], arr[i] = arr[i], arr[e] } } func main() { rand.seed(time.now().unixnano()) m := make(map[[3]int]int, 6) arr := [3]int{-6,10,184} for i := 1; i <= 6000000; i++ { a := arr naiveshuffle(&arr) m[a]++ } for k, v := range m { fmt.println(k, ":", v) } }
由于我正在进行简单的洗牌,我的理解是它不应该不产生均匀分布的排列。但这就是我得到的:
[184 -6 10] : 1000074 [184 10 -6] : 1000764 [-6 10 184] : 1000766 [10 184 -6] : 998090 [-6 184 10] : 1000479 [10 -6 184] : 999827
这表明 6 种可能的排列中的每一种都发生大约 100 万次。为什么我得到的分布看起来是均匀的?
编辑:将代码更改为仅种子一次。我现在得到:
[-6 184 10] : 999507 [184 -6 10] : 1000401 [10 -6 184] : 1002163 [10 184 -6] : 999236 [-6 10 184] : 999016 [184 10 -6] : 999677
编辑2:感谢霍布斯,我意识到我犯了一个愚蠢的错误。我应该洗牌 a
,而不是 arr
。我现在得到:
[10 -6 184] : 1111056 [-6 10 184] : 888442 [184 -6 10] : 888576 [10 184 -6] : 1109896 [-6 184 10] : 1113148 [184 10 -6] : 888882
解决方法
您对 arr
进行了超过 600 万次洗牌,而没有在两次洗牌之间将其恢复到其原始状态 - 换句话说,您的 600 万次试验并不是独立的。尽管每次洗牌的排列分布不均匀,但将这些排列相互叠加 600 万次会产生非常接近均匀的分布。
以上是均匀分布与天真的洗牌?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Bootstrap 图片居中方法多样,不一定要用 Flexbox。如果仅需水平居中,text-center 类即可;若需垂直或多元素居中,Flexbox 或 Grid 更合适。Flexbox 兼容性较差且可能增加复杂度,Grid 则更强大且学习成本较高。选择方法时应权衡利弊,并根据需求和偏好选择最适合的方法。

十大加密货币交易平台包括:1. OKX,2. Binance,3. Gate.io,4. Kraken,5. Huobi,6. Coinbase,7. KuCoin,8. Crypto.com,9. Bitfinex,10. Gemini。选择平台时应考虑安全性、流动性、手续费、币种选择、用户界面和客户支持。

十大虚拟币交易平台2025:1. OKX,2. Binance,3. Gate.io,4. Kraken,5. Huobi,6. Coinbase,7. KuCoin,8. Crypto.com,9. Bitfinex,10. Gemini。选择平台时应考虑安全性、流动性、手续费、币种选择、用户界面和客户支持。

网页批注功能的Y轴位置自适应算法本文将探讨如何实现类似Word文档的批注功能,特别是如何处理批注之间的间�...

C35 的计算本质上是组合数学,代表从 5 个元素中选择 3 个的组合数,其计算公式为 C53 = 5! / (3! * 2!),可通过循环避免直接计算阶乘以提高效率和避免溢出。另外,理解组合的本质和掌握高效的计算方法对于解决概率统计、密码学、算法设计等领域的许多问题至关重要。

安全的虚拟币软件app推荐:1. OKX,2. Binance,3. Gate.io,4. Kraken,5. Huobi,6. Coinbase,7. KuCoin,8. Crypto.com,9. Bitfinex,10. Gemini。选择平台时应考虑安全性、流动性、手续费、币种选择、用户界面和客户支持。

有四种方法可以调整 WordPress 文章列表:使用主题选项、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代码(在 functions.php 文件中添加设置)或直接修改 WordPress 数据库。

安全靠谱的数字货币平台:1. OKX,2. Binance,3. Gate.io,4. Kraken,5. Huobi,6. Coinbase,7. KuCoin,8. Crypto.com,9. Bitfinex,10. Gemini。选择平台时应考虑安全性、流动性、手续费、币种选择、用户界面和客户支持。
