概率题:一个篮子里装着20个红球和20个蓝球,每次从中取出2球,如果取出的2球颜色不一样,那么放回红球,取出蓝球;如果取出的2球的颜色是一样的,则都不放回,将2球都取出;不断重复以上步骤。问题:求最后一次取球恰好只取到一个红球的概率。
因为红球是偶数,而取出1红1蓝的情况下也会把红球放回,所以红球是不会被单个取出的,所以最后一次取球是不会只取到一个红球的!也就是概率是0,但是不知道这种东西是否也要用程序写出来,如果用数学式是怎么计算的?
根本不知道该如何写
下面写了个PHP的程序亲测,
$x=20; //红球
$y=20; //篮球
$ball = array(); //初始化 将球放入数组中
for ($i=1;$i<=$x+$y;$i++) {
$ball[$i] = $i;
}
// 对球的操作
function getBall($a,$b) {
global $ball;
global $x;
global $y;
if ($a <= 20 && $b <=20) { //2红球
$x = $x-2;
unset($ball[$a]); //注销掉数组中的此元素
unset($ball[$b]);
} else if ($a<=20 && $b > 20) { //1红1蓝
$y = $y-1;
unset($ball[$b]);
} else if ($a > 20 && $b > 20) { // 2蓝
$y = $y-2;
unset($ball[$a]);
unset($ball[$b]);
}
}
// 递归取球
function oprateBall() {
global $ball;
global $x;
global $y;
$a = array_rand($ball,2); // 随机获取目前数组中的2个球
getBall($a[0],$a[1]); //调用取球函数
if (count($ball) == 2 ) {
return oprateBall();
} else {
if ($x ==1) { // 红球的概率为0 不可能只最后只剩下一个红球
return '红球';
} else if ($y == 2) {
return '篮球';
} else { // 亲测此程序运行 出现 这种情况的概率是最高的
return '2个红球!';
}
}
}
$result = oprateBall();
echo $result;