實驗1:
function shuffle(target) {var j, x, i = target.length;for (; i > 0; j = parseInt(Math.random() * i), x = target[--i], target[i] = target[j], target[j] = x) {}return target }function removeAt(target, index) {return !!target.splice(index, 1).length }var bingo1 = 0 var bingo2 = 0for (var i = 0; i < 10000; i++) {var arr = shuffle([0, 0, 1]);var index = parseInt(Math.random() * 3);if (arr[index]) bingo1++ }for (var i = 0; i < 10000; i++) {var arr = shuffle([0, 0, 1]);var index = parseInt(Math.random() * 3);var errIndex = 0// 主持人刪掉一個錯誤答案for (var j = 0; j < arr.length; j++) {if (arr[j] == 0 && j != index) {errIndex = jarr[j] = 'x'break;}}
// 遍歷所有答案,如果用戶選擇的是錯的,那根據強制交換的約定,就是一定是對的。for (var k = 0; k < arr.length; k++) {if (arr[k] == 0 && k == index) {bingo2++}} }console.log(bingo1, bingo2);
?
更簡單的實驗:
function shuffle(target) {var j, x, i = target.length;for (; i > 0; j = parseInt(Math.random() * i), x = target[--i], target[i] = target[j], target[j] = x) {}return target }function removeAt(target, index) {return !!target.splice(index, 1).length }var bingo1 = 0 var bingo2 = 0for (var i = 0; i < 10000; i++) {var arr = shuffle([0, 0, 1]);var index = parseInt(Math.random() * 3);if (arr[index]) bingo1++if (!arr[index]) bingo2++ }console.log(bingo1, bingo2);
?