趣味js之斗牛算法详解

大家新年好,在过年的这段日子里,本人过的是非常的不错,可以说是吃的饱,睡的好,正所谓酒足饭饱,打打牌,出门走亲戚,不免饭后打打牌,毕竟小赌怡情,今日学习了一下斗牛,交了不少学费,于是抱着先了解,后深入的精神,研究了一下关于斗牛的基础算法,看完之后,发现十赌九输还是有一定道理的,

function getRandom() {
return parseInt(2 + (9 - 2 + 1) * Math.random());
}

function getCards() {
var arr = [];
var count = 5;
while (count–) {
arr.push(getRandom());
}
return arr;
}

function cal(cards) {
console.log(cards);
var s = 0;
var dict = {};
for (var i = 0; i < cards.length; i++) {
var ci = cards[i];
s += ci;
dict[ci] = dict[ci] === undefined ? 1 : dict[ci] + 1;
};
var point = s % 10;
var exists = false;
for (var i in dict) {
var other = (10 + point - i) % 10;
if (dict[other]) {
if ((other == i && dict[other] >= 2) || (other!=i&&dict[other] >= 1)) {
exists = true;
break;
}
}
}
return exists ? point : -1;
}

console.log(cal(getCards()));
// console.log(cal([6, 6, 9, 3, 9]));

最后是一组关于斗牛所有情况的概率表,望大家看了之后心里有点数(拿出jqk)

所有牌的组合数:658008
出现四条的组合数:360,概率 :0.05%
出现三条的组合数:25200,概率 :3.83%
出现牛十的组合数:42432,概率 :6.45%
出现牛九或牛八的组合数:87296,概率 :13.27%
出现牛一到牛七的组合数:306112,概率 :46.52%
出现没有牛的组合数:196608,概率 :29.88%

本文纯属原创,抄袭必究!

你可能感兴趣的:(趣味js之斗牛算法详解)