sympy.stats 中的概率论

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!

Kra*_*las 6

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)


Mar*_*ijn 5

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)