Но от первого хода игрокак зависит, сколько у ведущего будет вариантов выбора. Ты сейчас пытаешься доказать, что 2+2 не равно 4. Задача доказана.
Я тебе даже программу написал

Код:
var winChange:Number = 0;
var winNoChange:Number = 0;
function run (test) {
//// формируем игровую ситуацию
var cx:Number = 6;
var door:Array = new Array ('.', '.', '.');
var car:Number = Math.random () * 3 >> 0;
door[car] = '8';
//// делаем случайный выбор
var vote1:Number = Math.random () * 3 >> 0;
//// выбор делает ведущий
if (car == vote1) {
var progress:Array = new Array (1, 2, 3);
progress.splice (car, 1);
var temp:Number = Math.random () * 2 >> 0;
var voteYacuboch:Number = progress[temp];
} else {
var voteYacuboch:Number = cx - car - vote1 - 2;
}
if (test) {
//// тестовый заход
//// выводим состояние за дверьми "." - козел, "8" - машина
//// выводим номер двери, которую выбрал игрок (1-3)
//// выводим дверь, которую выбрал ведущий, она не когда не равна машине, поэтому выодим всегда false
trace (door.join ("") + " " + (vote1 + 1) + " " + voteYacuboch + " " + (car == voteYacuboch));
} else {
if (vote1 == car) {
//// подсчитываем количество побед при упрямстве
winNoChange++;
} else {
//// подсчитываем количество побед при смене двери
winChange++;
}
}
}
var len:Number = 10;
//// тестовые запуски, чтобы показать, что все работает
for (var i:Number = 0; i < len; i++) {
run (true);
}
trace ("------------");
//// теперь идем на серьезно дело около 100000 повторов
len = 100000;
for (var i:Number = 0; i < len; i++) {
run ();
}
//// тперь выводим вероятность
trace (winChange / len + " " + winNoChange / len);
результаты трех запусков

Код:
0.66666 0.33334
0.66936 0.33064
0.66568 0.33432