【发布时间】:2018-03-31 02:00:01
【问题描述】:
我的问题如下,我面前有 4 张牌面朝下。有国王、王后、杰克和王牌。我拿起一张卡片,看着它,然后把它正面朝下放在我面前。我正在尝试模拟 1000 次挑选 3 张牌(您可以多次挑选同一张牌),即 3 张牌中的一个样本可以是 Jack、Jack 和 King。我在这里尝试过这样做:
import random
cards=["King", "Queen", "Jack", "Ace"]
for i in range(1000):
print([random.sample(cards, 3)])
所有这一切都是打印出 1000 次选择 3 张牌的迭代,但它不会两次选择同一张牌,这是应该的。
我想做的是计算我选择 3 张独特卡的次数,然后计算这样做的概率。然后我想计算我每次尝试选择的不同卡的平均数量。我知道将值添加到列表中会有所帮助,但我不确定如何去做。为格式化道歉,我没有经验。
【问题讨论】:
-
在循环中你会想要得到样本的unique count,检查它是否等于3,然后添加到一个计数变量中。
-
random.sample选择不替换。如果您有 Python 3.6(或更新版本),请参阅random.choice。 Documentation -
@rici:如果你没有 3.6,那么只实现
random.choice的统一版本是微不足道的。 -
@davis:当然,没有争议。但是阅读文档总是一个好习惯。您可能会发现有用的东西。
-
@rici:当然:比起其他库更喜欢标准库而不是自己做。我只是不想阻止没有那个版本的人。