Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 加权随机数到范围_Python_Random_Probability - Fatal编程技术网

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%的优势。更好的答案,谢谢!我知道这是显而易见的,但我的心却在拼命想办法弄明白。更好的答案,谢谢!我知道这是显而易见的,但我的心却在拼命想弄明白。