【发布时间】:2020-07-14 03:09:25
【问题描述】:
感谢您阅读我的问题。 我是 Python 的完全初学者,英语不是我的主要语言。如果你看不懂我的英语,请询问。感谢您的帮助。
问题来了。我想使用这些标准创建一个维恩图:
- 10*P(B) = P(A)
- P(C and notA) = 13 * P(B and notC and notA)
- P(B 和 C 和 notA)= 5 * P(B 和 C 和 A)
- P(B 和 C) = 0.18
- P(B 或 C 而不是 A)= 0.07
- P(notC) = 0.922 -> P(C) = 0.078
- P(B 和 A) = 0.01
我尝试使用“随机”,但我认为这样做很愚蠢。 这是我的代码,但如果您有更好的解决方案,请告诉我。
- oa 表示只有 A,即(A and notB and notC)
- abnc:表示A和B没有C
import random
# a = lowgrade fever
# b = headace
# c = Muscle ache
def haha():
oa = random.random()
ob = random.random()
oc = random.random()
abnc = random.random()
acnb = random.random()
bcna = random.random()
abc = random.random()
a = oa + abnc + acnb + abc
b = ob + abnc + bcna + abc
c = oc + acnb + bcna + abc
ab = abnc + abc
ac = acnb + abc
bc = bcna + abc
# oa + ob + oc + abnc + acnb+ bcna + abc = 1
if (10 * b == a):
c1 = True
if ((oc + bcna) == 13 * ob):
c2 = True
if ((ob + bcna + oc) == 5*abc):
c3 = True
if ((bcna + abc) == 0.018):
c4 = True
if(ob + bcna + oc == 0.07):
c5 = True
if(1 - oc + bcna + abc + acnb == 0.922):
c6 = True
if(abnc + abc == 0.01):
c7 = True
if (c1 and c2 and c3 and c4 and c5 and c6 and c7):
allc = True
if allc:
print(oa)
print(ob)
print(oc)
print(bcna)
print(acnb)
print(abnc)
print(abc)
return allc
haha()
while (allc == False):
haha()
谢谢你们。
【问题讨论】:
-
维恩图是什么意思?预期的输出应该是什么样的?你想要this这样的图片吗?
-
我只想知道每个段的编号(oa、ob、oc、abnc、acnb、bcna 和 abc)。维恩图的输出不是必需的。谢谢。
标签: python venn-diagram