Moh*_*ani 4 python probability sympy
这段代码应该输出 2/6 但我只得到 0
from sympy.stats import Die, P, Normal
n = 6
X = Die('X', n) # Six sided Die
P(X == 1) + P(X == 5)
Run Code Online (Sandbox Code Playgroud)
即使我只是尝试计算骰子落在 P(X==1) 这样的特定数字上的概率,它也会输出 0!
Die没有按照您期望的方式实现 equals 。如果你只写X == 1结果是False. 然而,如果你写了类似X > 3你没有得到True或的东西False,你会得到一个表达式(意思P是希望从中返回一些东西)。
当你写的时候
P(X == 1)
Run Code Online (Sandbox Code Playgroud)
这与写作相同
P(False)
Run Code Online (Sandbox Code Playgroud)
这对于骰子来说毫无意义。如果您想要每张脸的概率,您可以使用density:
from sympy.stats import Die, P, Normal, density
n = 6
X = Die('X', n) # Six sided Die
density(X)[1] + density(X)[5] # 1/3
Run Code Online (Sandbox Code Playgroud)
Eq(x,y)您可以从自身使用sympy:
from sympy.stats import Die, P, Normal
from sympy import Eq
n = 6
X = Die('X', n) # Six sided Die
print(P(Eq(X, 1)) + P(Eq(X, 5))) # prints 1/3
Run Code Online (Sandbox Code Playgroud)