您的位置:首页 > 其它

斗地主中,双王和炸弹出现概率统计

2012-04-25 21:54 190 查看
斗地主作为一个很流行的纸牌游戏,深受人民群主的喜爱。其中双王(又称火箭)与炸弹(四张点数一样的牌)是非常厉害的牌。那它们在一场比赛中出现的概率有多大呢?它们两个谁出现的概率更高呢?下面这个程序揭示了结果。

为了便于统计,我们简化模型,54张牌3个人玩,每人平均为17张牌。

# -*- coding: utf-8 -*-
import random

#游戏参与人数,最好是54的因数
persons 		= 3
#测试重复的次数
repeat_count	= 10000
#火箭出现的场次
rocket_count	= 0
#炸弹出现的场次
bomb_count 		= 0

for count in range(repeat_count):

#初始化牌
pai_init = [x for x in range(1, 14)] * 4 + [0] + [0]

#洗牌 shuffle会将指定序列随机排列
random.shuffle(pai_init)

flag_rocket = 0
flag_bomb	= 0

for i in range(persons):
#每个人的手牌
one_hand = pai_init[i * (54 / persons) : (i + 1) * (54 / persons)]
#统计是否出现 火箭
if (one_hand.count(0) == 2):
flag_rocket = 1
#统计是否出现炸弹
for i in range(1, 14):
if (one_hand.count(i) == 4):
flag_bomb = 1
break

if (flag_rocket == 1):
rocket_count += 1

if (flag_bomb == 1):
bomb_count +=1

#结果
print "persion: %d"%(persons)
print "repeat count: %d"%(repeat_count)
print "rocket probability : %f"%(1.0 * rocket_count / repeat_count)
print "bomb probability : %f"%(1.0 * bomb_count / repeat_count)


persion: 3

repeat count: 10000

rocket probability : 0.314300

bomb probability : 0.317400

从统计结果可以看出,炸弹出现的概率略高于火箭。因此火箭比炸弹大,可见游戏的作者设计的非常缜密。这里或略了真正玩法中,地主多三张牌这个规则,如果读者你能补充这个规则,看看是否还会是火箭的概率低。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: