Python 加权随机数到范围
假设我使用以下公式得到范围内的随机数:Python 加权随机数到范围,python,random,probability,Python,Random,Probability,假设我使用以下公式得到范围内的随机数: random.randrange(100) 假设它给出的数字小于或等于25,你赢;如果它给出的数字大于25,我赢。这样我就有75%的机会获胜 我怎样才能将数字大于25的概率加权一个百分比,比如说1% 所以,基本上我是在尝试将我获胜的几率再提高1%,而不是仅仅说“你赢24分或更少。” 如果不清楚,请告诉我。如果您想要25%中的1%,则需要使用更大的样本并相应地使用一个值:100000和249750 另一个解决方案是添加一个if,如果玩家第一次尝试失败,则更
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"
如果随机。范围(100)>25
返回“你赢了”
其他的
如果是随机的,范围(100)<1
返回“你赢了”
其他的
返回“你输了”
如果您想要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"
如果随机。范围(100)>25
返回“你赢了”
其他的
如果是随机的,范围(100)<1
返回“你赢了”
其他的
返回“你输了”
获取比范围小的随机数。假设你想要1-100,大部分是60岁
随机1-5
当1时,随机60-69
否则,随机选择1-100
如果我的数学正确的话,将是28%60
--z
举个例子,我相信你会随机选择1-100,然后随机选择26-100。这并不完全是1%的增长,但你可以通过数学运算得到你想要的百分比。得到一个比你的范围小的随机数。假设你想要1-100,大部分是60岁 随机1-5 当1时,随机60-69 否则,随机选择1-100 如果我的数学正确的话,将是28%60 --z 举个例子,我相信你会随机选择1-100,然后随机选择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
随机导入
def die_roll():
如果random.random()<0.26:
返回random.randrange(25)#0到24
返回random.randrange(25100)#25到99
可以说,你似乎想要“不公平”的骰子
如果你知道想要获胜的几率,一种方法是首先决定你是否获胜。如果你赢了,那么从中奖号码中选择一个号码。如果你输了,在输的号码中选择一个号码
例如:
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
随机导入
def die_roll():
如果random.random()<0.26:
返回random.randrange(25)#0到24
返回random.randrange(25100)#25到99
您使用的是哪一版本的Python?那么,您不把数字改为24吗?所以你有76%的机会赢。@jap任何版本。但我用的是3。5@JohnnyMopp是的,这是一个很好的主意……但是在这个赌博场景中,我们希望玩家在0-25范围内获胜,这对我来说很重要。你使用的是哪一版本的Python?你不把数字改为24吗?所以你有76%的机会赢。@jap任何版本。但我用的是3。5@JohnnyMopp是的,这是一个很好的主意…但是对于这个赌博场景,我们希望玩家在0-25范围内获胜,这对我来说很重要。但是我们希望你在0-25范围内获胜。把数字改为26违反了规则,也无助于我的事业。但我们希望你以0-25获胜。把数字改为26违反了规则,对我的事业没有帮助。我想这会管用的。我会做随机0-100,当1(或任何单个数字)随机26-100,否则随机0-100。这可以给我1%的优势,对吗?@user3055938让我想想数学问题,然后发布一个更新,但是是的,这将非常非常接近1%的优势。我认为这会奏效。我会做随机0-100,当1(或任何单个数字)随机26-100,否则随机0-100。这能给我1%的优势,对吗?@user3055938让我想想数学,然后发布一个更新,但是是的,这将非常非常接近1%的优势。更好的答案,谢谢!我知道这是显而易见的,但我的心却在拼命想办法弄明白。更好的答案,谢谢!我知道这是显而易见的,但我的心却在拼命想弄明白。