概率题:一个篮子里装着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;