假设我得到的是范围内的随机数,使用:
random.randrange(100)
假设它给出的数字小于或等于25,你就赢了,如果它给出的数字大于25,我就赢了。然后我有75%的机会赢。
我该如何加权这个数字大于25的概率的某个百分比,比如说1%。
所以,基本上,我试图将我获胜的几率再提高1%,而不是仅仅说“你赢24分或更少”
如果不清楚,请告诉我。
如果你想要25%中的1%,你需要使用一个更大的样本,并相应地使用一个值:100000和249750。
另一个解决方案是添加一个if,如果玩家第一次尝试失败,则更改为1%获胜。
if random.range(100) > 25
return "You Win"
else
if random.range(100) < 1
return "You Win"
else
return "You Lose"
得到一个比你的范围小的随机数。假设你想要1-100,大部分是60。
随机1-5
当1,随机60-69
否则随机1-100
如果我的数学正确的话,将是28%60岁
--z
对于你的例子,我相信你会想要随机1-100,然后随机1 26-100。这并不完全是1%的增加,但是你可以摆弄数学来得到你想要的百分比。
可以说,你似乎想要“不公平”的骰子。
如果你知道想要获胜的几率,一种方法是首先决定你是否获胜。如果你赢了,那么从赢的号码中选择一个号码。如果你输了,在输的数字中选择一个数字。
例如:
import random
def die_roll():
if random.random() < 0.26:
return random.randrange(25) # 0 to 24
return random.randrange(25, 100) # 25 to 99
问题内容: 我正在尝试设计一种(好的)方法,从可能的数字范围中选择一个随机数,其中该范围内的每个数字都具有权重。简单地说:给定数字范围(0,1,2),请选择一个数字,其中0的概率为80%,1的概率为10%,2的概率为10%。 自从我的大学统计课程上课以来已经有8年了,所以您可以想象一下,目前适合我的方法并不适合我。 这是我想出的“便宜又肮脏”的方法。此解决方案使用ColdFusion。您可以使用任
问题内容: 在Java中,给定 n个 项目,每个项目的权重为 w ,一个人如何从集合中选择机会等于 w 的随机项目? 假设每个权重是0.0到1.0的两倍,并且集合中的权重之和为1。Item.getWeight()返回Item的权重。 问题答案: Item[] items = …;
一个数组中有10个加权元素。我想随机选择一个元素N次,然后计算每个元素出现的次数。是否有一种算法可以在不需要选择N次的情况下为我提供元素计数<代码>N可能是一个很大的数字,在这种情况下,必须生成N个样本是低效的。 例如:一个盒子里有2个红色的球和8个白色的球。从盒子里随机挑选一个球,然后放回去,重复100次。计算拾取红色球或白色球的总次数。 我想知道是否有可能在不进行100次采样的情况下获得计数。
问题内容: 我想从集合中选择一个随机项目,但是选择任何项目的机会应与相关的权重成比例 输入示例: 因此,如果我有4种可能的物品,那么没有重量的任何一件物品的机会将是四分之一。 在这种情况下,用户遭受痛苦之剑的可能性应该是三刃剑的十倍。 如何在Java中进行加权随机选择? 问题答案: Apache Commons中现在有一个用于此的类: 这里是,像(假设Item接口阿恩的答案): 或在Java 8中
问题内容: 我需要从ElasticSearch指数获得了随机抽样,即发出查询检索从加权概率定索引一些文档(这里是行的权重,并在此查询所有文件的权重的总和)。 当前,我有以下查询: 它从选定类别中随机返回5个项目。每个项目都有一个字段。所以,我可能必须使用 作为描述在这里。 我有以下问题: 正确的方法是什么? 我需要启用动态脚本吗? 如何计算查询的总和? 非常感谢你的帮助! 问题答案: 万一它对任何
我正在尝试创建一个具有以下签名的函数: 它应做到以下几点: 生成从0到1的随机数,但不包括1 在该范围内选取任何给定数字的概率不是均匀分布的 选择的数字接近目标值的可能性更大(目标值也是从0到1的值) 概率曲线看起来像钟形曲线,目标值的概率最高,其周围的值逐渐变小,但0到1范围内的所有值仍有机会被选中。 这个机会的权重可以用概率值来调整,其中0表示没有对随机性施加权重,1表示几乎所有选择的数字都将