当使用随机时,哪种形式返回相等的50%几率?

Nop*_*ope 9 python random

我猜大多数内置的随机生成器都会返回如下内容:

[0.0, 1.0)
Run Code Online (Sandbox Code Playgroud)

所以,如果我想要50%的几率,我会使用这样的东西:

if random() < .5
Run Code Online (Sandbox Code Playgroud)

或类似的东西:

if random() <= .5
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助.

dwc*_*dwc 13

啊,旧的".5"问题.这是答案:

如果你要将10个东西分成两个相等的部分,那么每个部分需要5个东西.第一部分为0至4,第二部分为5-9.所以... < .5是正确的.


mos*_*hez 9

为什么这样呢?Python有random.choice :)

random.choice([0,1])会给你0/1的机会相等 - 而且它是Python的标准部分,由编写random.random的同一个人编码(因此比它更了解它的语义而不是还有谁)


tzo*_*zot 5

import random
def fifty_fifty():
    "Return 0 or 1 with 50% chance for each"
    return random.randrange(2)
Run Code Online (Sandbox Code Playgroud)