前几天qq群里面突然有一个人问了一个问题
36个数字中任选15个数字,包含某6个数字的概率是多少?
这是一个抽奖活动,看着中奖应该没那么难,他觉得应该在3-4%之间
实际情况呢?
先写代码模拟以下这个题目的实现
let result = [];
let rand = () => Math.floor(Math.random() * 36);
for(let i = 0; i < 1000000; i++){
// 先生成15个
let arr = [];
for(let i = 0; i < 15; i++){
// 如果生成的数字是已经生成过了的就继续生成
while(true){
let num = rand();
if(!arr.includes(num)){
arr.push(num);
break;
}
}
}
let flag = true;
let keys = [];
for(let j = 0; j < 5; j++){
while(true){
let num = rand();
// 如果已经生成过了就继续执行生成的过程
if(keys.includes(num)){
continue;
}
keys.push(num);
// 如果不包含的情况下,置为false
if(!arr.includes(num)){
flag = false;
}
break;
}
// 如果已经是false就break掉
if(!flag){
break;
}
}
flag && result.push(flag);
}
console.log(result.length);
可以实际测试一下这个概率是在多少
而这个的真实概率是多少呢?
正确答案是:
万分之25.7
如何计算呢?
首先肯定是C(36,15)种情况,包含某6位的情况就是从剩余的30个数字里面在选9个
所以概率就是C(30, 9)/C(36,15);
由此可见,抽奖是多坑人!!!