Ru-Board.club
← Вернуться в раздел «Форумные игры»

» Задачки, головоломки

Автор: vzbzdnov
Дата сообщения: 03.11.2006 03:10
ipmanyak

Цитата:
ЭТО запятая !!!

Наконец-то!

Цитата:
гугль - он рулез !

Жульничество!
Автор: COH
Дата сообщения: 09.11.2006 20:34
Недавно подбросили задачу:

Из пункта А и В, расстояние между которыми 100 км, со скоростями 20 км/ч и 30 км/ч выезжают навстречу друг другу два велосипедиста. Вместе с ними со скоростью 50 км/ч вылетают две мухи, летят до встречи (своей), поворачивают и летят обратно до встречи с велосипедистами, снова поворачивают и т. д. Сколько километров пролетит каждая муха в направлении от А до В до того момента, когда велосипедисты встретятся?

P.S. При подсчете учитывать только направление из А в В. Если направление мухи из В в А, то в расчет его не брать.

Автор: Goul
Дата сообщения: 10.11.2006 17:56
COH
Рассмотрим муху, вылетевшую из A. Как и её конкурентка, она летела до встречи 2 часа, из них TA1 в направлении A->B и TA2 в направлении B->A. Ясно, что TA1 + TA2 = 2 ч. С другой стороны, TA1 часов она летела относительно велосипедиста, выехавшего из A, со скоростью 50 - 20 = 30 км/ч. и TA2 часов - относительно того же велосипедиста со скоростью -50 - 20 = -70 км/ч., оказавшись в конечном итоге в той же точке, где и велосипедист, то есть TA1 * 30 + TA2 * (-70) = 0. Решаем систему из двух уравнений с двумя неизвестными, получаем, что TA1 = 1.4, TA2 = 0.6. Стало быть, в направлении A->B первая муха пролетела 1.4 * 50 = 70 км. Аналогичным образом получаем, что вторая муха пролетела в этом же направлении 0.4 * 50 = 20 км.
Автор: COH
Дата сообщения: 10.11.2006 20:39
Goul
Ну да)
можно было даже без времён, просто всего муха летела 100 км, и оказалась в точке 40 км (ежель пункт А брать за ноль) -- х-(100-х)=40, х=70
ну и вторая муха 100+у-(100-у)=40, у=20
Автор: Goul
Дата сообщения: 10.11.2006 20:49
COH
Да, действительно, так намного проще. Можно было уже из вида уравнений понять: конечная точка полёта - разность между расстояниями, пройденными в каждом из направлений, а стало быть, для каждой мухи достаточно одного линейного уравнения.
PS. Единственное, что меня смущает... Что-то быстро мухи летать стали. Хорошо, что это не коровы...
Автор: scup
Дата сообщения: 23.05.2007 12:57
Вроде с мухами не правильный ответ. Велосипедисты встретяться через 2 часа, так? Значит каждая муха тоже налетает 2 часа, т.е. по 100 км.ч.
Автор: Goul
Дата сообщения: 23.05.2007 15:10
scup
Вы не удосужились прочитать постскриптум к условию задачи, поэтому поняли её условия неверно.
Автор: vzbzdnov
Дата сообщения: 24.05.2007 02:04
TempestAdept

Цитата:
Значит, ответ - нельзя.

Что-то запутано очень.
Автор: PapaKarlo
Дата сообщения: 16.09.2007 02:33
Приводимая ниже задача - в общем-то, для класса где-то пятого... Поэтому интересно не математическое решение, а ваш спонтанный, сразу приходящий в голову ответ и то, насколько математическое решение совпадает с ним или отличается от него...

Представим себе, что Земля является идеальным шаром - без гор и впадин (прям кошмар какой-то! ). Вдоль экватора натянули металлический обруч без зазоров. Затем обруч разрезали, раздвинули на один метр и приварили недостающий кусок. И, наконец, сформировали обруч снова в идеальную окружность, так что образовавшийся зазор между поверхностью Земли и обручем одинаков вдоль всего обруча.

Теперь, собственно, вопрос: может ли в образовавшийся зазор пролезть кошка?

====

И еще одна задачка: сколько различных решений имеет уравнение x*x=x ?
Автор: Troitsky
Дата сообщения: 16.09.2007 10:08
PapaKarlo

Цитата:
может ли в образовавшийся зазор пролезть кошка?

нет, хотя, зная совоего кота, могу сказать, что он пролезет везде

Цитата:
сколько различных решений имеет уравнение x*x=x

Оно имеет так же x решений, т.е. одно
Автор: PapaKarlo
Дата сообщения: 16.09.2007 16:40
Troitsky

Цитата:
нет, хотя, зная совоего кота, могу сказать, что он пролезет везде

Собираем дальше статистику о котах. Хотя в задаче и говорится о кошке, но дискриминация, разумеется, недопустима!


Цитата:
Оно имеет так же x решений, т.е. одно

Несколько поспешное заявление...
Автор: F777
Дата сообщения: 16.09.2007 16:50
x*x=x <=> x*x-x=0 <=> x(x-1)=0 <=> x=0 или x=1

2 решения
Автор: vzbzdnov
Дата сообщения: 16.09.2007 17:10
PapaKarlo

Цитата:
Представим себе, что Земля является идеальным шаром - без гор и впадин (прям кошмар какой-то! ). Вдоль экватора натянули металлический обруч без зазоров. Затем обруч разрезали, раздвинули на один метр и приварили недостающий кусок. И, наконец, сформировали обруч снова в идеальную окружность, так что образовавшийся зазор между поверхностью Земли и обручем одинаков вдоль всего обруча.

Теперь, собственно, вопрос: может ли в образовавшийся зазор пролезть кошка?


Помню, помню... Только там не так было. Надо взять земной шар и увеличить обруч на метр и взять горошину и увеличить обруч на метр. Вопрос - где зазор будет больше?
Автор: PapaKarlo
Дата сообщения: 17.09.2007 00:59
Размышления о некоторых задачах, встречавшихся в ветке, и о предложенных решениях.

evle
[/q] Проводится лотерея. Есть три двери, за одной из которых автомобиль. Правила следующие:
Ведущий просит игрока указать одну из дверей. После этого он оставляет указанную дверь закрытой, но открывает одну из оставшихся, за которой нет машины. После этого он предлагает игроку поменять свой выбор, либо оставить его неизменным. Что должен сделать игрок, чтобы повысить вероятность выигрыша?[/q]

albel

Цитата:
с дверями всё вроде просто. Таки надо менять дверь. Это должно на треть повысить вероятность выигрыша. Т.е. если исходно мы выбирали произвольную дверь с веоятностью 1/3, то открывание двери без машины ведущим апостериорно не влияет на наш выбор, таким образом, вероятность машины за первой дверью остаётся прежней - 1/3. Но поскольку мы теперь точно знаем, что за одной из оставшихся дверей машины нет, то вероятность нахождения машины за другой оставшейся дверью возрастёт до 2/3. Вроде бы так. Нет?


evle

Цитата:
Правильно. Что-то в доказательстве мне не нравится, больно просто получилось, но не могу понять, что.


Да нет, неправильно. И именно поэтому, думается мне,
Цитата:
Что-то в доказательстве мне не нравится


Сначала поясню "на пальцах".
1) В ситуации, когда одна дверь открыта, две остальные абсолютно равноправны. Ведь чем они отличаются с точки зрения игрока? Только тем, что он указал на нее ранее. Однако ни это действие игрока, ни последующие действия ведущего не дают никакой информации об обеих оставшихся закрытыми дверях, которая (информация) позволила отличить их друг от друга.
2) Давайте проведем мысленный эксперимент. После открытия третьей двери, но до произведения игроком повторного выбора машина переставляется. Фактически это ничего не меняет для игрока - ведь он обладает лишь одной информацией: за одной из двух закрытых дверей находится машина.


Теперь вопрос - а что же не нравится (иными словами - где ошибка) в рассуждениях albel?

Сначала два определения.
1) Стохастическим экспериментом называется эксперимент, который проводится (может быть проведен) бесконечное количество раз, но каждый раз с одиними и теми же начальными условиями. Иными словами, результаты предыдущего эксперимента не влияют на исход последующего.
2) Вероятностью исхода А стохастического эксперимента называется отношение количества реализовавшихся исходов А к общему числу исходов - в идеале при бесконечно большом количестве проведений эксперимента. Исход А называется благоприятным исходом.

Из определения следует, что вероятность - величина теоретическая, т.к. стохастический эксперимент на практике не реализуем. Однако мы имеем право говорить о вероятности, полученной путем умозрительным.

Но хватит теории (хотя для дальнейших рассуждений очень важно помнить об определениях).


Итак, все три двери закрыты, машина стоит за одной из них (заметим, с вероятностью, равной единице - в противном случае мы имеем дело с надувательством со стороны организаторов лотореи ). Игрок указывает на некоторую дверь, и с вероятностью 1/3 он укажет на дверь, за которой находится машина. Заметим, что значение "1/3" справедливо лишь для некоторого усредненного игрока; иными словами, выбор конкректного игрока вовсе не обязательно имеет равномерное распределение вероятности, и лишь проводя стохастический эксперимент в идеале с бесконечным количеством игроков, мы получим величину 1/3.

Но все это не имеет ровным счетом никакого значения. Почему? Да потому, что выбор игрока на первой фазе лишь дает возможность ведущему в соответствии с условиями лотореи открыть дверь, за которой машины нет. На этом условия эксперимента меняются, и никакие значения вероятностей для проведенного эксперимента не оказывают влияния на дальнейший ход событий.

Есть сомнения в том, что про 1/3 можно забыть? Хорошо, проведем такой умозрительный эксперимент: откроем и вторую дверь (какую, не важно). Ну как, вероятность нахождения машины за дверью, указанной игроком, все еще равна 1/3?

Предположение
Цитата:
вероятность машины за первой дверью остаётся прежней - 1/3
ошибочно.

Итак, что же мы имеем теперь? Теперь вместо трех закрытых дверей мы имеем две, за одной из которых находится (хочется верить ) машина. Чем же отличается эта ситуация от предыдущей? Кроме количества дверей - ничем. Представьте себе, что некий опоздавший зритель явился в этот момент в зал, причем он оказался миллионным посетителем лотереи. По правилам теперь он играет дальше. Но он же ничего не знает о том, на какую из закрытых дверей указал предыдущий игрок. Поэтому обе двери равноправны.

Ну, а раз так, то, применяя наши рассуждения, использованные при трех закрытых дверях к данному случаю, получим вероятность угадывания двери... правильно, 1/2!


Таким образом, на вопрос
Цитата:
Что должен сделать игрок, чтобы повысить вероятность выигрыша?
можно ответить что угодно: молиться, пытаться прочитать мысли ведущего, заглянуть за дверь, но ни одно из двух предлагаемых в условии задачи действий, увы, не поможет повысить вероятность выигрыша.

И вообще, все пассажи о первом выборе и об открытии первой двери ИМХО призваны сбить с толку решающего.


Если приведенные рассуждения неубедительны, попробуем вспомнить определение вероятности и подсчитать ее. При этом мы будем подсчитвать количество возможных и количество благоприятных исходов, начиная с размещения машины, чтобы предотвратить возможное возражение о "некорректности" неучета всех событий, происходивших до решающего выбора игрока.


Итак, имеются три двери: А, Б и В. За одной из них находится машина. Количество вариантов: 3 (три).

Игрок указывает на одну из дверей. Количество возможных вариантов: 3х3=9. При этом в 3 (трех) вариантах выбрана дверь, за которой машина есть, в 6 (шести) - за которой машины нет.

В любом из первых трех вариантов у ведущего есть две возможности выбрать дверь, которая будет открыта - всего шесть вариантов. В каждом из шести вариантов у игрока есть выбор из двух вариантов: либо оставить свой выбор и выиграть (всего 6х1 = шесть благоприятных исходов), либо изменить выбор и проиграть (также 6х1 = шесть благоприятных исходов).

В любом из вторых шести вариантов первого выбора игрока у ведущего есть лишь один вариант открытия третьей двери (так как другую дверь, за которой машины нет, "заблокировал" игрок своим выбором). Опять имеем шесть вариантов действий ведущего. В любом из них точно также возможны шесть благоприятных исходов, если первоначальный выбор будет изменен, и шесть неблагоприятных исходов, если первоначальный выбор будет сохранен.

Итого: если игрок изменит свой выбор, то в шести вариантах из двенадцати он выиграет (вероятность выигрыша равна 1/2). И точно также при сохранении выбора. Что и требовалось доказать.


В следующей серии - рассуждение на тему шарика, который плавает в банке, которая стоит в лифте, который построил Джек... пардон, который Джек резко тянет вверх.
Автор: daMIR
Дата сообщения: 17.09.2007 19:26
PapaKarlo
ИМХО все гораздо проще Было три закрытые двери, одну открыли, осталось две за одной из которых автомобиль. Итого вероятность 1/2 Или в обратном смысле 1 Бит.
А вот по поводу обруча вокруг земли получилось что кошка может пролезть- вышло что щель будет в 15 см, но сам чувствую что нереально Просветите двоченика , какой правильный ответ?
Автор: Elroir
Дата сообщения: 17.09.2007 20:12
daMIR
У меня получилось 16 сантиметров
И тоже гложет сомнение...
Автор: PapaKarlo
Дата сообщения: 17.09.2007 20:17
daMIR

Цитата:
ИМХО все гораздо проще Было три закрытые двери, одну открыли, осталось две за одной из которых автомобиль. Итого вероятность 1/2 Или в обратном смысле 1 Бит.


Ваше объяснение абсолютно правильно и лаконично. Просто с учетом единственного ответа, данного в свое время на эту задачу, и подтверждения этого (ошибочного) ответа задававшим задачу хотелось несколько развернуто заглянуть в суть вещей
У меня лично применение теории вероятности всегда вызывало интерес и... заметные затруднения. Вот и поупражнялся. Если получилось несколько длинновато - mea culpa.


daMIR
Elroir
По поводу кошки - ответил в ПМ. Почему - публично поясню позже

Добавлено:

Такая простая задачка.

0x0=0; 1x1=1; 5x5=25; 6x6=36

Далее:
25x25=625; ...

Продолжите, пожалуйста, дальше.
Автор: daMIR
Дата сообщения: 17.09.2007 20:28

Цитата:
У меня лично применение теории вероятности всегда вызывало интерес и... заметные затруднения. Вот и поупражнялся. Если получилось несколько длинновато - mea culpa.

У меня кстати тоже Твой ответ тоже интерсный, развернутый вариант тоже полезен

Цитата:
По поводу кошки - ответил в ПМ. Почему - публично поясню позже

Получил Вот уж не думал... Все молчу молчу))
Автор: Elroir
Дата сообщения: 17.09.2007 20:51
PapaKarlo

Цитата:
Далее:
25x25=625; ...
Продолжите, пожалуйста, дальше.

76*76=5776
Автор: COH
Дата сообщения: 17.09.2007 20:51
PapaKarlo
76х76=5776
Помнится, у Перельмана было просчитано не помню уже до скольки цифр

Добавлено:
Elroir
Автор: Elroir
Дата сообщения: 17.09.2007 20:58
COH

Я так не помнил. Сходу решил вручную посчитать, но понял это может быть надолго.
Тогда я себе скрипт написал, который мне и выдал искомое число (до 1000)
Автор: Goul
Дата сообщения: 18.09.2007 05:28
PapaKarlo

Цитата:
Размышления о некоторых задачах, встречавшихся в ветке, и о предложенных решениях.

Правильное решение было дано albel:
Цитата:
Таки надо менять дверь. Это должно на треть повысить вероятность выигрыша. Т.е. если исходно мы выбирали произвольную дверь с веоятностью 1/3, то открывание двери без машины ведущим апостериорно не влияет на наш выбор, таким образом, вероятность машины за первой дверью остаётся прежней - 1/3. Но поскольку мы теперь точно знаем, что за одной из оставшихся дверей машины нет, то вероятность нахождения машины за другой оставшейся дверью возрастёт до 2/3. Вроде бы так. Нет?

Ключевая фраза здесь - это то, что ведущий в любом случае откроет дверь без машины, это известно в каждый момент времени. Вы можете воспользоваться этой информацией (тогда получите ответ albel), а можете не воспользоваться (тогда будет ваш ответ). Я попробую зайти с другой стороны. После того, как вы выбрали дверь, вы знаете, что с вероятностью 2/3 машина находится за одной из двух оставшихся дверей, а также что с вероятностью 1 ведущий сейчас откроет ту из них, за которой машины нет. Поскольку сей факт известен заранее, вероятность 2/3 не изменится.
Ради любопытства я в своё время накидал программку, которая проводит испытания. Вы, наверное, догадываетесь, какой она даёт результат. Кстати, показательный побочный результат: для случая дверей в количестве больше трёх, если ведущий открывает все двери, кроме одной (не считая выбранной игроком), вероятность нахождения машины за последней дверью уверенно держится на величине (N-1)/N.
Автор: vzbzdnov
Дата сообщения: 18.09.2007 05:28
2pr+1=2pR
R=(2pr+1)/2p
R-r = (2pr+1)/2p - r = r + 1/(2p) - r = 1/(2p) = 0.159
Вывод - высота зазора не зависит от радиуса шара

Добавлено:
Про двери - не всё так просто в датском королевстве.
Я, лично, рассуждал бы так - выберу-ка я две двери, А а и Б! Причём, я очень хочу выбрать Б (ну, лежит к ней душа!), но выберу дверь А, а Б буду держать на уме, как наиболее вероятного кандидата.
Теперь имеем два варианта - ведущий открыл Б, либо ведущий открыл В.
Если ведущий открыл В, то шансы, что машина за дверью Б резко возрастают - не зря же я её сам хотел выбрать, а ведущий её НЕ открыл! Есть прямой смысл поменять свой выбор и выбрать дверь Б.
Если ведущий всё-таки открыл дверь Б, то, выходит, интуиция моя хреновая и скорей всего за дверью А тоже будет пусто. Поэтому меняю свой выбор на В.
Автор: evle
Дата сообщения: 18.09.2007 15:00
PapaKarlo
Как давно это было…
Твоё решение — иллюстрация моей подписи.

Цитата:
На этом условия эксперимента меняются, и никакие значения вероятностей для проведенного эксперимента не оказывают влияния на дальнейший ход событий.

Вот это надо доказывать, а доказать не получится.

Вот это утверждение неверно:

Цитата:
В любом из вторых шести вариантов первого выбора игрока у ведущего есть лишь один вариант открытия третьей двери (так как другую дверь, за которой машины нет, "заблокировал" игрок своим выбором). Опять имеем шесть вариантов действий ведущего.

В этом случае варианта всего три.


Разумеется, можно строго доказать, что правильный ответ — менять решение. Но делать это мне совершенно лень. Проще пойти другим путём. Практика — критерий истины.

Код:
use warnings;
use strict;

#
#    rounds, doors, change
#
sub test($$$) {
    my $rounds = shift;
    my $doors = shift;
    my $change = shift;
    my @stat = ();
    for (my $i = 0; $i <= $rounds; $i++) {
        my $car = int(rand($doors)) + 1;
        my $case = int(rand($doors)) + 1;
        my $presenter = int(rand($doors - (($car == $case) ? 1 : 2))) + 1;
        $presenter++ if ($presenter == $car || $presenter == $case);
        $presenter++ if ($presenter == $car || $presenter == $case);
        my $case2;
        if ($change) {
            $case2 = int(rand($doors - 2)) + 1;
            $case2++ if ($case2 == $case || $case2 == $presenter);
            $case2++ if ($case2 == $case || $case2 == $presenter);
        } else {
            $case2 = $case;
        }
        my $won = $case2 == $car;
        $stat[$change]++ if $won;
        #print "$i: $car $case $presenter $case2 $won\n";
        #print "$i: Машина в $car; первый выбор $case; открыта $presenter; выбор " .
        #    ($change ? "изменён" : "не изменён") . "; в итоге выбрана $case2; " .
        #    ($won ? "победа" : "поражение") . ".\n";
    }
    print "Проведено $rounds экспериментов. В каждом выбор " .
        ($change ? "изменён" : "не изменён") .
        ".\n Число побед: $stat[$change]\n\n";
}

test(1000000, 3, 1);
test(1000000, 3, 0);
Автор: PapaKarlo
Дата сообщения: 18.09.2007 15:34
Goul

Цитата:
После того, как вы выбрали дверь, вы знаете, что с вероятностью 2/3 машина находится за одной из двух оставшихся дверей

и далее...
Я полагаю, причина, приводящая к получению "странных значений" типа 2/3, заключается в понятии "вероятность нахождения машины за некоторой дверью". Я с удовольствием узнал бы, что под этим подразумевается. Сразу предупреждаю возможный комментарий - я не придираюсь, более того, смысл утверждения "вероятность нахождения машины за некоторой дверью" для меня не очевиден. Я по-прежнему утверждаю, что машина находится за строго одной (игроку неизвестной) дверью с вероятностью, равной единице. Я также утверждаю, что игрокв начале лотореи с вероятностью 1/3 выберет дверь, за которой находится машинапосле открытия одной из дверей (иными словами, когда выбор уменьшится до двух дверей) с вероятностью 1/2 выберет дверь, за которой находится машинаи в общем случае, когда перед ним находятся N дверей, о которых он не обладает дополнительной информацией, с вероятностью 1/N выберет дверь, за которой находится машина.
Как только мы придем к одинаковому пониманию в этом вопросе, многое прояснится.


Цитата:
я в своё время накидал программку, которая проводит испытания. Вы, наверное, догадываетесь, какой она даёт результат
Я догадываюсь лишь о том, как Вы интерпретируете выдваемые ей результаты. Если можно, программу в студию.

И, наконец. Хотелось бы не только услышать иное мнение, но и также понять, где же я ошибаюсь в моих рассуждениях (если ошибка имеет место быть).


vzbzdnov

Цитата:
выберу-ка я две двери, А а и Б! Причём, я очень хочу выбрать Б (ну, лежит к ней душа!), но выберу дверь А, а Б буду держать на уме, как наиболее вероятного кандидата.
И далее...
Простите, Ваши рассуждения лежат в области, несколько отличающейся от математики. Я ничего не имею против интуиции и интуитивного ощущения повышения возможности выигрыша, однако ИМХО эти параметры оцениваются весьма субъективно, посему решение обсуждаемой задачи таким путем даст ответ, приемлемый в лучшем случае только для того, кто его дал.


Добавлено:
evle

Цитата:
Вот это утверждение неверно:

Цитата:В любом из вторых шести вариантов первого выбора игрока у ведущего есть лишь один вариант открытия третьей двери (так как другую дверь, за которой машины нет, "заблокировал" игрок своим выбором). Опять имеем шесть вариантов действий ведущего.

В этом случае варианта всего три.


В чем мое утверждение неверно:
Цитата:
В любом из вторых шести вариантов первого выбора игрока
в числе шесть? В слове любом? или, может быть, в том, что ведущий имеет в любом из этих шести вариантов лишь 1/2 выбора (что дает 6*1/2=3) ?


Цитата:
Цитата:На этом условия эксперимента меняются, и никакие значения вероятностей для проведенного эксперимента не оказывают влияния на дальнейший ход событий.

Вот это надо доказывать, а доказать не получится.


Цитирую себя несколько полнее:

Цитата:
Да потому, что выбор игрока на первой фазе лишь дает возможность ведущему в соответствии с условиями лотореи открыть дверь, за которой машины нет. На этом условия эксперимента меняются, и никакие значения вероятностей для проведенного эксперимента не оказывают влияния на дальнейший ход событий.


Поясняю. Смысл моего утверждения заключался в том, что после открытия ведущим одной из дверей условия меняются.

Доказательство.
Пока были закрыты три двери, стохастический эксперимент имеет три возможных исхода: указание на дверь A, указание на дверь Б, указание на дверь В.
После того, как одна из дверей (пусть это будет В; значения это не имеет) открыта, стохастический эксперимент имеет два возможных исхода: указание на дверь A, указание на дверь В. Изменение налицо. Поэтому вероятности надо рассчитывать снова. Конец доказательства.


Спасибо за код программы. Посмотрю и прокомментирую.

И все же, ссылаясь на первую часть этого поста, прошу (но не требую, ни в коем разе ) указать, где я ошибаюсь.
Автор: PapaKarlo
Дата сообщения: 18.09.2007 17:45
evle

Цитата:
Практика — критерий истины.
...
c:\Testing\cars>cars.pl
Проведено 1000000 экспериментов. В каждом выбор изменён.
Число побед: 666127

Проведено 1000000 экспериментов. В каждом выбор не изменён.
Число побед: 333094

Вы знаете, когда программа выдает результаты, отличающиеся от ожидаемых, неопытный программист говорит: "У Вас машина не работает"; опытный - ищет ошибки в своей программе. А вот когда результаты совпдают с ожидаемыми, ситуация более опасная, даже для опытного программиста. А что, если и ожидания, и программа нас обманывают?

Я нашел в Вашей программе несколько ошибок, большинство из них для решаемой задачи несущественны. Но это и следовало ожидать, ведь на самом деле все эти предварительные выборы дверей (в симуляции которых есть ошибки) неважны. А вот самую главную ошибку, объясняющую результат, пришлось поискать подольше.
Вы не пробовали подсчитать статистику: сколько раз была открыта каждая дверь ведущим, сколько раз была выбрана каждая из трех дверей по case2? Посчитайте, Вы получите очень интересные результаты.

Теперь проиллюстрирую ошибку в программе. Пусть игрок указал на третью, а ведущий открыл вторую дверь. Ваш алгоритм сгенерирует для измененного выбора случайное число: 1 или 2. Если 1 - то все прекрасно, а вот если 2? Додумайте сами, исправьте программу (не только в этом месте! если действительно будете исправлять, могу рассказать и про другие ошибки) и попробуйте ее запустить. Вот тогда и посмотрим.
Автор: daMIR
Дата сообщения: 18.09.2007 17:58

Цитата:
Если ведущий открыл В, то шансы, что машина за дверью Б резко возрастают - не зря же я её сам хотел выбрать


Цитата:
Если ведущий всё-таки открыл дверь Б, то, выходит, интуиция моя хреновая и скорей всего за дверью А тоже будет пусто.

Все-таки это не доказательство, это не логика. Проще всего забать про третью дверь на которую нам указал ведущий, там автомобиля нет! Осталось две двери, за одной из которых- авто, верно? И вот теперь вопрос- сколько раз нужно менять свой выбор из этих двух дверей, чтобы шансы повысились? Ответ- нисколько, верояность 50%. Вот где моя ошибка в рассуждениях???
Синтаксис к сожалению мне не известен, и разбирать алгоритм- лень Но думаю там где-то закралась алгоритмисческая ошибка. Или не так хорошо работает рандом.


Цитата:
76*76=5776

А это как вывели? Никак не могу найти зависимость...
Автор: evle
Дата сообщения: 18.09.2007 17:59

Цитата:
В чем мое утверждение неверно:

Цитата:
В любом из вторых шести вариантов первого выбора игрока

в числе шесть? В слове любом? или, может быть, в том, что ведущий имеет в любом из этих шести вариантов лишь 1/2 выбора (что дает 6*1/2=3) [Image] ?
Автор: daMIR
Дата сообщения: 18.09.2007 17:59
Или вот метафора- мы знаем что на ребро монета упасть не может, а что выпадет- орел или решка, сказать можем только с вероятностью 50%.
Автор: evle
Дата сообщения: 18.09.2007 19:14
PapaKarlo

Цитата:
Я нашел в Вашей программе несколько ошибок

Каюсь. В нескольких местах обмищурился. (А может не надо на Вы?)

Цитата:
Пусть игрок указал на третью, а ведущий открыл вторую дверь. Ваш алгоритм сгенерирует для измененного выбора случайное число: 1 или 2.

А вот этой ошибки как раз и нет. В этом случае программа будтет выбирать число от 1 до 1, аномалиии со статистикой были по другой причине.


[more=Пофиксил.]
use warnings;
use strict;

#
#    rounds, doors, change
#
sub test($$$) {
    my $rounds = shift;
    my $doors = shift;
    my $change = shift;
    my @car;
    my @case;
    my @presenter;
    my @case2;
    my @stat = ();
    for (my $i = 0; $i <= $rounds; $i++) {
        my $car = int(rand($doors)) + 1;
        $car[$car]++;
        my $case = int(rand($doors)) + 1;
        $case[$case]++;
        my $presenter;
        $presenter = int(rand($doors)) + 1;
        $presenter = int(rand($doors)) + 1 while (($presenter == $car) || ($presenter == $case));
        $presenter[$presenter]++;
        my $case2;
        if ($change) {
            $case2 = int(rand($doors)) + 1;
            $case2 = int(rand($doors)) + 1 while (($case2 == $case) || ($case2 == $presenter));
        } else {
            $case2 = $case;
        }
        $case2[$case2]++;
        my $won = $case2 == $car;
        $stat[$change]++ if $won;
        #print "$i: $car $case $presenter $case2 $won\n";
        #print "$i: Машина в $car; первый выбор $case; открыта $presenter; выбор " .
        #    ($change ? "изменён" : "не изменён") . "; в итоге выбрана $case2; " .
        #    ($won ? "победа" : "поражение") . ".\n";
    }
    print "Проведено $rounds экспериментов. В каждом выбор " .
        ($change ? "изменён" : "не изменён") .
        ".\n Число побед: $stat[$change]\n\n";
    print "Машина: \t" . join(', ', @car[1..3]) . "\n";
    print "Первый выбор: \t" . join(', ', @case[1..3]) . "\n";
    print "Ведущий: \t" . join(', ', @presenter[1..3]) . "\n";
    print "Второй выбор: \t" . join(', ', @case2[1..3]) . "\n";
    print "\n\n";
}

test(100000, 3, 1);
test(100000, 3, 0);
[/more]
c:\Testing\cars>cars.pl
Проведено 100000 экспериментов. В каждом выбор изменён.
Число побед: 66495

Машина: 33378, 33215, 33408
Первый выбор: 33250, 33426, 33325
Ведущий: 33411, 33270, 33320
Второй выбор: 33340, 33305, 33356


Проведено 100000 экспериментов. В каждом выбор не изменён.
Число побед: 33343

Машина: 33295, 33283, 33423
Первый выбор: 33323, 33478, 33200
Ведущий: 33454, 33261, 33286
Второй выбор: 33323, 33478, 33200


Страницы: 12345678910111213141516171819202122232425262728293031

Предыдущая тема: Бескрылки


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.