有一次打麻将,说到概率问题,一个同学说斗地主的时候王炸的概率比炸弹的概率要大,真的是这样吗?我说干脆统计一下算了,考虑到我们的概率统计学得有太差,直接写个公式对我们有困难,于是写了一个小脚本,用计算机计一下数就得了。

import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;

public class DouDiZhuTest {
 public static void main(String[] args) {
  List pai = Arrays.asList(new String[] { "A-1", "A-2", "A-3",
    "A-4", "2-1", "2-2", "2-3", "2-4", "3-1", "3-2", "3-3", "3-4",
    "4-1", "4-2", "4-3", "4-4", "5-1", "5-2", "5-3", "5-4", "6-1",
    "6-2", "6-3", "6-4", "7-1", "7-2", "7-3", "7-4", "8-1", "8-2",
    "8-3", "8-4", "9-1", "9-2", "9-3", "9-4", "10-1", "10-2",
    "10-3", "10-4", "J-1", "J-2", "J-3", "J-4", "Q-1", "Q-2",
    "Q-3", "Q-4", "K-1", "K-2", "K-3", "K-4", "W-1", "W-2" });
  HashMap> tong = new HashMap>();
  for (int count : new Integer[] { 100, 1000, 10000, 100000 }) {
   for (boolean isDizhu : new Boolean[] { true, false }) {
    int dui = 0;
    int san = 0;
    int zha = 0;
    int wangzha = 0;
    for (int i = 0; i < count; i++) {
     tong.clear();
     Collections.shuffle(pai);
     // 如果是地主。取54/3+3=17+3=20.不是的话就是17张。
     for (int j = 0, len = isDizhu ? 20 : 17; j < len; j++) {
      char p = pai.get(j).charAt(0);
      LinkedList l = (tong.get(p) == null) ? new LinkedList()
        : tong.get(p);
      l.add(pai.get(j));
      tong.put(p, l);
     }
     for (Character key : tong.keySet()) {
      switch (tong.get(key).size()) {
      case 2:
       if (tong.get(key).get(0).charAt(0) != 'W')
        dui++;
       else
        wangzha++;
       break;
      case 3:
       san++;
       break;
      case 4:
       zha++;
       break;
      default:
       break;
      }
     }
    }
    System.out.printf(
      "在%d次统计中(%s):\\n对有%d个\\n三个的有%d个\\n王炸有%d个\\n炸弹有%d个\\n",
      count, (isDizhu ? "是地主" : "不是地主"), dui, san, wangzha,
      zha);
   }
   System.out.println("\\n");
  }

 }
}

下面是结果:

在100次统计中(是地主):
对有453个
三个的有141个
王炸有11个
炸弹有24个
在100次统计中(不是地主):
对有386个
三个的有102个
王炸有8个
炸弹有10个


在1000次统计中(是地主):
对有4364个
三个的有1621个
王炸有129个
炸弹有185个
在1000次统计中(不是地主):
对有3759个
三个的有1019个
王炸有103个
炸弹有91个


在10000次统计中(是地主):
对有43832个
三个的有15911个
王炸有1244个
炸弹有2021个
在10000次统计中(不是地主):
对有37066个
三个的有10464个
王炸有961个
炸弹有939个


在100000次统计中(是地主):
对有437545个
三个的有159401个
王炸有13319个
炸弹有20083个
在100000次统计中(不是地主):
对有372558个
三个的有103456个
王炸有9571个
炸弹有9680个

看来地主还是很有优势的,虽然只多了三张底牌,但是炸弹的概率就翻倍了。

最后分享一个QQ都地主 iphone 单机版,瞬间成帝王的方法:

斗地主-帝王

不用越狱,用itools打开斗地主,找到Documents文件夹下面的savegame.dat ,用二进制编辑器(winhex,ue等)找到第三排编号0000020h,第C/D/E 位是我们要修改的积分的地址.比如c位改成FF,D位改成FF,E位改成01。找到你的iphone,进入qq斗地主试试把。