gpt4 book ai didi

ruby - 在 2 个或更多范围之间随机选择

转载 作者:数据小太阳 更新时间:2023-10-29 08:43:29 26 4
gpt4 key购买 nike

我正在尝试制作一个随机数生成器,它将在 3 到 4 位数字范围之间更“均匀”地选取。如果我这样做:

result = rand(100..9999)

我很清楚,在大多数情况下,系统会选择 4 位数字。我想给 3 位数字更多的机会被选中,所以我这样做了:

rand_3_digit_num = (100..999)
rand_4_digit_num = (1000..9999)

rand([rand_3_digit_num, rand_4_digit_num].sample)

有没有其他方法可以做到这一点?我的目标是让 3 位数的数字比普通兰特有更大的被选中的机会。如果我引入 5 位或 6 位数字,这个问题会变得更糟,3 位或 4 位数字被选中的机会很快就会减少。

最佳答案

暴力破解:

list = (100..999).to_a*10 + (1000..9999).to_a
=> [100, ..., 9999]
list.size
=> 18000
list.count { |e| e < 1000 }
=> 9000
list.count { |e| 999 < e && e < 10000 }
=> 9000

现在 list.sample 应该给出 3 位和 4 位数字的相等概率。

关于ruby - 在 2 个或更多范围之间随机选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41086485/

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