[теорвер] белые шарики
От: Кодт Россия  
Дата: 19.02.12 16:45
Оценка: 5 (1)
Вычитал у К.Кнопа в жж задачку.

Есть n ящиков, в каждом из которых лежат k белых и n-k чёрных шариков (k последовательно принимает значения 1..n).
Случайным образом выбрав ящик, мы запустили туда руку и вынули шарик. Он оказался белым.
Какова вероятность того, что если мы вынем оттуда ещё два шарика, они тоже окажутся белыми?

Задача номер 1. Получить аналитическое решение.
Задача номер 2. Можно ли эту задачу решить, или хотя бы сделать грубую оценку, как-то по-простому — на пальцах, на интуиции?

(Ответов ещё не знаю. Размышляю...)
Перекуём баги на фичи!
Re: [теорвер] белые шарики
От: Буравчик Россия  
Дата: 19.02.12 20:42
Оценка: +2
Здравствуйте, Кодт, Вы писали:

К>Есть n ящиков, в каждом из которых лежат k белых и n-k чёрных шариков (k последовательно принимает значения 1..n).

К>Случайным образом выбрав ящик, мы запустили туда руку и вынули шарик. Он оказался белым.
К>Какова вероятность того, что если мы вынем оттуда ещё два шарика, они тоже окажутся белыми?

Как не странно, но для любого N получается ответ 0.5

Вот так решал:

... << RSDN@Home (RF) 1.2.0 alpha 5 rev. 17>>
Best regards, Буравчик
Re[2]: [теорвер] белые шарики
От: Аноним  
Дата: 19.02.12 20:52
Оценка: +1
Здравствуйте, Буравчик, Вы писали:
Б>Как не странно, но для любого N получается ответ 0.5
А у меня 1/3. Причину разногласия выделю жирным.

1) Задача несимметричная относительно белых и чёрных (не используется)
2) Во всех ящиках есть белый шар
3) После того как мы достали белый шар, мы не получили новой информации о выборе корзины и о распределении шаров в ней.
4) После того как мы достали шар ситуация стала абсолютно симметричной =>
Вероятность достать два белых = вероятности два чёрных. (не используется)
5) Вероятность равна сумме вероятностей по всем корзинам
6) P = 1/n SUM( k=3..n, (k-1)/(n-1) * (k-2)/(n-2)) = 1/3

Следствие:
P(два белых) = P(два чёрных) = P(белочёрный) + P(чёрнобелый) = 1/3

Для интуитивного решения надо как то воспользоваться пунктом 4 наверно.
Re[3]: [теорвер] белые шарики
От: Буравчик Россия  
Дата: 19.02.12 21:06
Оценка: +1
Здравствуйте, <Аноним>, Вы писали:


А>3) После того как мы достали белый шар, мы не получили новой информации о выборе корзины и о распределении шаров в ней.


Возможно. Я часто ошибаюсь, решая такие задачи.

Но представим две урны. В одной 1 белый и миллиард черных шаров. В другой 1 черный и миллиард белых. В каждой из них есть белые шары. Мы выбрали случайно урну и вытащили из нее наугад шар. Он оказался белым. Разве это не говорит о том, что более вероятно то, что мы выбрали вторую урну (в которой очень много белых шаров)?
... << RSDN@Home (RF) 1.2.0 alpha 5 rev. 17>>
Best regards, Буравчик
Re[4]: [теорвер] белые шарики
От: Аноним  
Дата: 19.02.12 22:06
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>Но представим две урны. В одной 1 белый и миллиард черных шаров. В другой 1 черный и миллиард белых. В каждой из них есть белые шары. Мы выбрали случайно урну и вытащили из нее наугад шар. Он оказался белым. Разве это не говорит о том, что более вероятно то, что мы выбрали вторую урну (в которой очень много белых шаров)?


Думал, что ответ очевиден, но честно говоря, не могу корректно сформулировать.
Определение комбинаторной вероятности это отношение всех подходящих вариантов события к общему количеству вариантов. Все урны перебираем РАВНОВЕРОЯТНО. Нам дано, что что-то там вытащили, но ключевое — мы перебираем всевозможные варианты событий.

Твоя формулировка неоднозначна. Если подходить формально, то в твоей задаче определено другое пространство событий:
<Выбрали урну1, вытащили шар чёрный N1>
<Выбрали урну1, вытащили шар чёрный N2>
...
<Выбрали урну1, вытащили шар чёрный N1000..>
<Выбрали урну1, вытащили шар белый N1>
<Выбрали урну2, вытащили шар белый N1>
<Выбрали урну2, вытащили шар белый N1000..>
...

Найти P(выбрана урна1), если вытащили белый.

В нашей задаче этого пространства событий нет. Нам просто дано, что количество белых шаров уменьшили на 1.
Re[4]: [теорвер] белые шарики
От: Аноним  
Дата: 19.02.12 22:17
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>Здравствуйте, <Аноним>, Вы писали:



А>>3) После того как мы достали белый шар, мы не получили новой информации о выборе корзины и о распределении шаров в ней.


Б>Возможно. Я часто ошибаюсь, решая такие задачи.


Б>Но представим две урны. В одной 1 белый и миллиард черных шаров. В другой 1 черный и миллиард белых. В каждой из них есть белые шары. Мы выбрали случайно урну и вытащили из нее наугад шар. Он оказался белым. Разве это не говорит о том, что более вероятно то, что мы выбрали вторую урну (в которой очень много белых шаров)?


У меня такое же решение и такой же ответ.
Re[4]: [теорвер] белые шарики
От: Аноним  
Дата: 19.02.12 22:30
Оценка:
P(next_2_white | took_white) = Sum i=1,n : P(box = i | took_white) * P(next_2_white | took_white, box = i) — переписали событие took_white по всем возможным значениям дискретной случайной величины.
Интересно, что такая громоздкая сумма даёт в результате 0.5. Возможно, есть более простое решение без таких сумм.
Re: [теорвер] белые шарики
От: dilmah США  
Дата: 20.02.12 00:18
Оценка:
Иногда одна вторая это просто одна вторая..

Я вижу только один способ как-то интуитивно обосновать, почему всегда получается одна вторая -- взять доказательство того что эта сумма равна 1/2 и попытаться "обратно портировать" это доказательство с языка чисел на язык элементарных исходов
Re: [теорвер] белые шарики
От: Константин Россия  
Дата: 20.02.12 00:19
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Вычитал у К.Кнопа в жж задачку.


К>Есть n ящиков, в каждом из которых лежат k белых и n-k чёрных шариков (k последовательно принимает значения 1..n).

К>Случайным образом выбрав ящик, мы запустили туда руку и вынули шарик. Он оказался белым.
К>Какова вероятность того, что если мы вынем оттуда ещё два шарика, они тоже окажутся белыми?

К>Задача номер 1. Получить аналитическое решение.

К>Задача номер 2. Можно ли эту задачу решить, или хотя бы сделать грубую оценку, как-то по-простому — на пальцах, на интуиции?

Ответ P=1/2
Общее утверждение: P( вынем ещё p белых шариков, если q вынутых подряд оказались белыми ) = (q+1)/(p+q+1)
Например:
P( вынем ещё 1 белый шарик, если 1 оказался белым ) = 2/3
P( вынем ещё 2 белых шарика, если 1 оказался белым ) = 1/2
P( вынем ещё 10 белых шариков, если 1 оказался белым ) = 1/6
P( вынем ещё p белых шариков, если 1 оказался белым ) = 2/(p+2)
...
P( вынем ещё 4 белых шарика, если 3 вынутых подряд оказались белыми ) = 1/2

Решение
Обозначим событие A_p = {выбрали равновероятно ящик, взяли p шариков, а они все белые}.
P( вынем ещё p шариков, если q вынутых подряд оказались белыми ) = P( A_p+q при условии A_q ) = P(A_p+q и A_q) / P(A_q) = P(A_p+q) / P(A_q) = (q+1)/(p+q+1), так как P(A_q) = 1/(q+1) * (n+1)/n. Это следует из следующих равенств:

P(A_1) = 1/n (1/n + 2/n + ... + n/n) = (n+1)/n * 1/2
P(A_2) = 1/n (0 + 2/n*1/(n-1) + 3/n*2/(n-1) + ... n/n*(n-1)/(n-1)) = 1/n (1*2*3+2*3*4+...+(n-2)(n-1)n)) /((n-2)(n-1)n) = (n+1)/n * 1/3
...
P(A_q) = 1/n ( 1*2*...*q + 2*...*(q+1) + .. + (n-q+1)*....*n)/ ((n-q+1)*....*n) = (n+1)/n * 1/(q+1)

Самое сложное здесь посчитать сумму: S(n) = 1*2*..*q + 2*3*..*(q+1) + .... + (n-q+1)*(n-q+2)*...*n = 1/(q+1) * (n+1)n(n-1)...(n-q+1)
Это угадывается из общих соображений, и строго потом можно доказать индукцией по n.
— n=q — очевидно
— S(n+1)-S(n) = 1/{q+1} (n+1)n...(n-q) * (n+2-(n-q+1)) = (n+1)n..(n-q), что и требовалось
Re: [теорвер] белые шарики
От: Аноним  
Дата: 20.02.12 07:46
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Вычитал у К.Кнопа в жж задачку.


К>Есть n ящиков, в каждом из которых лежат k белых и n-k чёрных шариков (k последовательно принимает значения 1..n).

К>Случайным образом выбрав ящик, мы запустили туда руку и вынули шарик. Он оказался белым.
К>Какова вероятность того, что если мы вынем оттуда ещё два шарика, они тоже окажутся белыми?

К>Задача номер 1. Получить аналитическое решение.

К>Задача номер 2. Можно ли эту задачу решить, или хотя бы сделать грубую оценку, как-то по-простому — на пальцах, на интуиции?

К>(Ответов ещё не знаю. Размышляю...)


Кстати у тебя другая немного задача получилась чем у Кнопа. У него N+1 ящиков и существует ящик в котором только чёрные (k=0)
Оригинал (http://knop.livejournal.com/280937.html):
Имеется (N+1) ящиков с черными и белыми шариками. В одном из них N белых шариков. В другом — один черный и N-1 белый. В третьем — два черных, а остальные белые. И т.д, в последнем ящике все N шариков черные. Мы выбираем ящик наугад (не зная, сколько шариков в нем белых) и вытаскиваем из него шарик. Он оказался белым. Затем мы вытаскиваем из этого же ящика еще два шарика. Какова вероятность того, что они оба окажутся белыми?

ps. Ну это если ответы вдруг сравнивать будем.
Re[2]: [теорвер] белые шарики
От: Erop Россия  
Дата: 20.02.12 11:02
Оценка: 1 (1) +1
Здравствуйте, Аноним, Вы писали:

А>ps. Ну это если ответы вдруг сравнивать будем.


Очевидно, что добавление любого количества ящиков чёрных шариков никак на ответ не влияет, так как мы достоверно знаем, что один белый мы таки достали...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re: [теорвер] белые шарики
От: rus blood Россия  
Дата: 24.02.12 17:53
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Задача номер 2. Можно ли эту задачу решить, или хотя бы сделать грубую оценку, как-то по-простому — на пальцах, на интуиции?


Сначала более простой вариант — после первого выбора белого шара выбирается еще один шар.
Вот трехмерный куб (.png, 16кБ).
  Скрытый текст

По оси Х отложен выбор ящика, координата X — номер ящика.
В ящике номер X лежат X белых шаров.
По оси Y отложен первый выбор шара (номер шара в ящике).
По оси Z отложен второй выбор шара (номер шара в ящике).
Каждая точка куба соответствует результату испытания.

В плоскости XY белый треугольник — выбор ящика и белого шара (синяя часть — выбор черного шара).
Выбор двух белых шаров лежит в пирамиде (Y<=X, Z<=X) — на рисунке выделен черными линиями.
Вероятность выбрать два белых шара, соответственно, равна 1/3 (в пределе по числу ящиков).
В точности она равна сумме квадратов от 1 до n, деленное на n в кубе.

Нас интересует условная вероятность по условию — "первый шар белый".
Этот набор результатов испытаний соответствует половине куба (выделен коричневым).
Т.о., искомая вероятность будет 1/3, деленное на 1/2 (в пределе по числу ящиков).

Чуть более сложный случай выбора двух белых шаров.
Тут для наглядности нужен четырехмерный куб.
Но ход рассуждений такой же.
Вероятность выбора трех белых шаров будет 1/4 (объем четырехмерной пирамиды с единичными основаниями и высотой).
Условная вероятность по условию "первый шар белый" будет равна 1/4, деленная на 1/2, т.е. 1/2.
Это в пределе по числу ящиков.
В точности, должно быть что-то вроде удвоенной суммы кубов от 1 до N, деленное на N в четвертой степени.
Имею скафандр — готов путешествовать!
Re[2]: [теорвер] белые шарики
От: Буравчик Россия  
Дата: 25.02.12 08:07
Оценка: :)
Здравствуйте, Буравчик, Вы писали:

Б>Как не странно, но для любого N получается ответ 0.5


По-простому (интуитивно) будет так: либо вытащим еще два шара / либо не вытащим — вероятность 1/2.
... << RSDN@Home (RF) 1.2.0 alpha 5 rev. 17>>
Best regards, Буравчик
Re[3]: [теорвер] белые шарики
От: Кодт Россия  
Дата: 26.02.12 10:09
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>По-простому (интуитивно) будет так: либо вытащим еще два шара / либо не вытащим — вероятность 1/2.


Вот я так и знал, что надо было оговорить в условиях — про динозавра на Невском проспекте!!!
Перекуём баги на фичи!
Re: [теорвер] белые шарики
От: tsaple  
Дата: 05.03.12 00:43
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Вычитал у К.Кнопа в жж задачку.


К>Есть n ящиков, в каждом из которых лежат k белых и n-k чёрных шариков (k последовательно принимает значения 1..n).

К>Случайным образом выбрав ящик, мы запустили туда руку и вынули шарик. Он оказался белым.
К>Какова вероятность того, что если мы вынем оттуда ещё два шарика, они тоже окажутся белыми?

К>Задача номер 1. Получить аналитическое решение.

К>Задача номер 2. Можно ли эту задачу решить, или хотя бы сделать грубую оценку, как-то по-простому — на пальцах, на интуиции?

К>(Ответов ещё не знаю. Размышляю...)


Задача простая если знать условную вероятность и правильно определить что мы ищем.
Итак, аналитическое решение:
Рассмотрим один ящик, вероятность того что любые два выбранные оттуда шарика окажутся белыми:
k/n (если рассматриваем ящик под номером k).
Мы также должны выбрать ящик собственно — вероятность выбрать kый ящик равна 1/n.
Итак что мы ищем?
Мы ищем вероятность C = вероятности вытащить два белых шарика выбрав наугад ящик.
Это событие можно описат следующим образом аналитически
C = A1 * B + A2 * B + ... + An * B.
Где например Ai = событие заключающиеся в том, что мы выбрали ящик под номером i (i=1..n, или можно вместо i написать k). B = событие — мы выбрали два белых шарика(неважно откуда). A1 * B = это произведение событий означает, что случились события A1 и B одновременно (вместе) и то и другое.
Сумма же A1 * B + A2 * B например означает, что произошло событие либо A1 * B либо A2 * B. То ест хотя бы одно событие из суммы произошло. Собственно это мы и ищем. События в сумме (слагаемые Ai * B) — это события не совместные — невозможно, чтобы произошли одновременно и A1 * B и A2 * B. А значит
P(C) = P(A1 * B) + ... + P(An * B).
Осталось разобрать, что такое P(Ai * B).
P(Ai * B) = P(Ai) * P(B|Ai)
P(Ai) = 1/n
P(B|Ai) = вероятность того, что выбраны два белых шарика, при условии, что выбран ящик под номером i.
P(B|Ai) = можно разбить на как бы подсобытия = P(B1*B2|Ai), где B1 = первый шарик белый, B2 = второй шарик белый. В случае ящика под номером i имеем: P(B1 * B2) = P(B1) * P(B2|B1) = i/n * (i-1)/(n-1)
Итак
P(Ai * B) = i/n * (i-1)/(n-1) * 1/n
P(C) = Сумма по i = 1 до n слагаемых вида i/n * (i-1)/(n-1) * 1/n

А по интуиции вы поймете все сами и очень легко если прочтете немножко из теории вероятностей, конкретно что такое события и действия над событиями, а также условные вероятности событий.

Спасибо за задачу, очень интересная! Давайте еще таких =)

И да, может я где-то ошибся, но вроде все правильно, если что поправьте)
Re[2]: [теорвер] белые шарики
От: tsaple  
Дата: 05.03.12 01:30
Оценка: -1
Ответ будет
Re[2]: [теорвер] белые шарики
От: tsaple  
Дата: 05.03.12 07:33
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>Здравствуйте, Кодт, Вы писали:


К>>Есть n ящиков, в каждом из которых лежат k белых и n-k чёрных шариков (k последовательно принимает значения 1..n).

К>>Случайным образом выбрав ящик, мы запустили туда руку и вынули шарик. Он оказался белым.
К>>Какова вероятность того, что если мы вынем оттуда ещё два шарика, они тоже окажутся белыми?

Б>Как не странно, но для любого N получается ответ 0.5


Б>Вот так решал:


Б>


Извините, что приходиться такое говорить, но я считаю, что ваш ответ неверен, пожалуйста прочтите мой (ник tsaple) ниже ответ. В моем случае в пределе будет 1/3 вероятность. От N зависит вероятность, вовсе не 0,5 всегда
в моем решении ответ = (N+1)/(3N)
А для интуитивного понимания нужно прочесть простую теорию о складывании и произведений событий — что это такое глянуть и понять (теория множеств — объединение и пересечение) а также условную вероятность,
совместность событий и зависимость. В данной задаче используется при решении зависимость некоторых событий друг от друга и поэтому собственно мы используем условную вероятность. Условную вероятность очень просто и легко объяснит учебник по теорверу, я советую для этого учебник автора Кремер Теор вер и мат стат.
Re[3]: [теорвер] белые шарики
От: Константин Россия  
Дата: 05.03.12 08:14
Оценка:
Здравствуйте, tsaple, Вы писали:

T>Ответ будет

T>

Ваши расчёты разбиваются о суровую реальность. Эксперимент подтверждает ответ 1/2, как подсчитано раньше независимо несколько раз.


N=5 p(1 after 1)=0.666894
N=5 p(2 after 1)=0.500238
N=5 p(3 after 1)=0.39992
N=50 p(1 after 1)=0.666837
N=50 p(2 after 1)=0.500143
N=50 p(3 after 1)=0.400049
N=500 p(1 after 1)=0.666254
N=500 p(2 after 1)=0.499915
N=500 p(3 after 1)=0.400039
N=500000 p(1 after 1)=0.666842
N=500000 p(2 after 1)=0.500157
N=500000 p(3 after 1)=0.399942


Код теста:


#include <random>
#include <iostream>
#include <vector>

int main()
{
  std::vector<int> boxesSizes;
  boxesSizes.push_back(5);
  boxesSizes.push_back(50);
  boxesSizes.push_back(500);
  boxesSizes.push_back(500000);
  const int nAttempts = 10000000;
  std::random_device rd;
  std::mt19937 gen(rd());

  for( int test = 0; test < boxesSizes.size(); ++test )
  {
    const int nBoxes = boxesSizes[test];
    std::uniform_int_distribution<> box(1, nBoxes);
    std::uniform_int_distribution<> ball1(1, nBoxes);
    std::uniform_int_distribution<> ball2(1, nBoxes-1);
    std::uniform_int_distribution<> ball3(1, nBoxes-2);
    std::uniform_int_distribution<> ball4(1, nBoxes-3);

    int nFirstIsWhite = 0;
    int nNextIsWhite = 0;
    int nNextTwoAreWhite = 0;
    int nNextThreeAreWhite = 0;
    for( int i = 0; i < nAttempts; ++i )
    {
      int boxNumber = box(gen);
      if( ball1(gen) > boxNumber )
        continue;
      ++nFirstIsWhite;
      if( ball2(gen) > boxNumber - 1 )
        continue;
      ++nNextIsWhite;
      if( ball3(gen) > boxNumber - 2 )
        continue;
      ++nNextTwoAreWhite;
      if( ball4(gen) > boxNumber - 3 )
        continue;
      ++nNextThreeAreWhite;
    }
    std::cout << "N=" << nBoxes << " p(1 after 1)=" << float(nNextIsWhite) / nFirstIsWhite << std::endl;
    std::cout << "N=" << nBoxes << " p(2 after 1)=" << float(nNextTwoAreWhite) / nFirstIsWhite << std::endl;
    std::cout << "N=" << nBoxes << " p(3 after 1)=" << float(nNextThreeAreWhite) / nFirstIsWhite << std::endl;  }

  return 0;
}
Re[4]: [теорвер] белые шарики
От: tsaple  
Дата: 06.03.12 00:34
Оценка:
Здравствуйте, Константин, Вы писали:

К>Здравствуйте, tsaple, Вы писали:


T>>Ответ будет

T>>

К>Ваши расчёты разбиваются о суровую реальность. Эксперимент подтверждает ответ 1/2, как подсчитано раньше независимо несколько раз.



К>

К>N=5 p(1 after 1)=0.666894
К>N=5 p(2 after 1)=0.500238
К>
N=5 p(3 after 1)=0.39992
К>N=50 p(1 after 1)=0.666837
К>N=50 p(2 after 1)=0.500143
К>
N=50 p(3 after 1)=0.400049
К>N=500 p(1 after 1)=0.666254
К>N=500 p(2 after 1)=0.499915
К>
N=500 p(3 after 1)=0.400039
К>N=500000 p(1 after 1)=0.666842
К>N=500000 p(2 after 1)=0.500157
К>
N=500000 p(3 after 1)=0.399942


К>Код теста:



К>
К>#include <random>
К>#include <iostream>
К>#include <vector>

К>int main()
К>{
К>  std::vector<int> boxesSizes;
К>  boxesSizes.push_back(5);
К>  boxesSizes.push_back(50);
К>  boxesSizes.push_back(500);
К>  boxesSizes.push_back(500000);
К>  const int nAttempts = 10000000;
К>  std::random_device rd;
К>  std::mt19937 gen(rd());

К>  for( int test = 0; test < boxesSizes.size(); ++test )
К>  {
К>    const int nBoxes = boxesSizes[test];
К>    std::uniform_int_distribution<> box(1, nBoxes);
К>    std::uniform_int_distribution<> ball1(1, nBoxes);
К>    std::uniform_int_distribution<> ball2(1, nBoxes-1);
К>    std::uniform_int_distribution<> ball3(1, nBoxes-2);
К>    std::uniform_int_distribution<> ball4(1, nBoxes-3);

К>    int nFirstIsWhite = 0;
К>    int nNextIsWhite = 0;
К>    int nNextTwoAreWhite = 0;
К>    int nNextThreeAreWhite = 0;
К>    for( int i = 0; i < nAttempts; ++i )
К>    {
К>      int boxNumber = box(gen);
К>      if( ball1(gen) > boxNumber )
К>        continue;
К>      ++nFirstIsWhite;
К>      if( ball2(gen) > boxNumber - 1 )
К>        continue;
К>      ++nNextIsWhite;
К>      if( ball3(gen) > boxNumber - 2 )
К>        continue;
К>      ++nNextTwoAreWhite;
К>      if( ball4(gen) > boxNumber - 3 )
К>        continue;
К>      ++nNextThreeAreWhite;
К>    }
К>    std::cout << "N=" << nBoxes << " p(1 after 1)=" << float(nNextIsWhite) / nFirstIsWhite << std::endl;
К>    std::cout << "N=" << nBoxes << " p(2 after 1)=" << float(nNextTwoAreWhite) / nFirstIsWhite << std::endl;
К>    std::cout << "N=" << nBoxes << " p(3 after 1)=" << float(nNextThreeAreWhite) / nFirstIsWhite << std::endl;  }

К>  return 0;
К>}
К>


Признаюсь, я ошибся, решил не ту задачу
Предлагаю следующее решение:
Можно ведь выразить задачу следующим образом,
У нас ящики со следующим содержанием шариков белых
1 2 3...N
Мы выбрали один из них ящиков и выбрали оттуда один белый шарик. Нас не интересует вероятность этого события, нас интересует чт будет дальше
а именно вероятность вытащить два белых шарика из того же ящика. Если не ошибаюсь то задача станет следующей.
C = K1 A1 A2 + ... + KN A1 A1, Ki = вероятность выбора iго ящика
A1 — вытащить белый шарик, A2 — вытащить еще раз белый шарик (второй раз)

с учетом того что шариков белых стало на один меньше:
P(Ki A1 A2) = P(Ki) P(A1 A2|Ki) = 1/N * (i-1)*(i-2)/((N-1)(N-2))
итого сумма будет следующей
1/N * (i-1)*(i-2)/((N-1)(N-2)) По i = 3..N
В итоге выходит ровно 1/3,
Вопрос такой тогда — если вы правы и овтет 0,5 то в чем моя ошибка?
Re[3]: [теорвер] белые шарики
От: tsaple  
Дата: 06.03.12 00:35
Оценка:
Здравствуйте, tsaple, Вы писали:

T>Здравствуйте, Буравчик, Вы писали:


Б>>Здравствуйте, Кодт, Вы писали:


К>>>Есть n ящиков, в каждом из которых лежат k белых и n-k чёрных шариков (k последовательно принимает значения 1..n).

К>>>Случайным образом выбрав ящик, мы запустили туда руку и вынули шарик. Он оказался белым.
К>>>Какова вероятность того, что если мы вынем оттуда ещё два шарика, они тоже окажутся белыми?

Б>>Как не странно, но для любого N получается ответ 0.5


Б>>Вот так решал:


Б>>


T>Извините, что приходиться такое говорить, но я считаю, что ваш ответ неверен, пожалуйста прочтите мой (ник tsaple) ниже ответ. В моем случае в пределе будет 1/3 вероятность. От N зависит вероятность, вовсе не 0,5 всегда

T>в моем решении ответ = (N+1)/(3N)
T>А для интуитивного понимания нужно прочесть простую теорию о складывании и произведений событий — что это такое глянуть и понять (теория множеств — объединение и пересечение) а также условную вероятность,
T>совместность событий и зависимость. В данной задаче используется при решении зависимость некоторых событий друг от друга и поэтому собственно мы используем условную вероятность. Условную вероятность очень просто и легко объяснит учебник по теорверу, я советую для этого учебник автора Кремер Теор вер и мат стат.

Я ошибся не правильно поняв условия задачи, так что извиняйтся еще раз =)
Re[5]: [теорвер] белые шарики
От: dilmah США  
Дата: 06.03.12 00:55
Оценка: +1
T>C = K1 A1 A2 + ... + KN A1 A1, Ki = вероятность выбора iго ящика
T>A1 — вытащить белый шарик, A2 — вытащить еще раз белый шарик (второй раз)
T>с учетом того что шариков белых стало на один меньше:
T>P(Ki A1 A2) = P(Ki) P(A1 A2|Ki) = 1/N * (i-1)*(i-2)/((N-1)(N-2))
T>Вопрос такой тогда — если вы правы и овтет 0,5 то в чем моя ошибка?

ты считаешь, что Ki -- вероятность выбора iго ящика это 1/N
Но нас просят посчитать вероятность вытаскивания двух белых шариков УЖЕ ПОСЛЕ того как один белый шарик уже известно, что вытащен.
Это апостериорная вероятность, и она может отличаться (и отличается) от априорной вероятности, которая была в начале.


Скажем, если идут муж и жена, то вероятность того, что муж негр -- это, скажем, 10%
Если же мы уже узнали, что жена негритянка, то вероятность того, что муж негр (или мыщьх) резко повышается.
Re[2]: [теорвер] белые шарики
От: tsaple  
Дата: 06.03.12 01:02
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>Здравствуйте, Кодт, Вы писали:


К>>Есть n ящиков, в каждом из которых лежат k белых и n-k чёрных шариков (k последовательно принимает значения 1..n).

К>>Случайным образом выбрав ящик, мы запустили туда руку и вынули шарик. Он оказался белым.
К>>Какова вероятность того, что если мы вынем оттуда ещё два шарика, они тоже окажутся белыми?

Б>Как не странно, но для любого N получается ответ 0.5


Б>Вот так решал:


Б>


Я не понял ваше решение — вы выбираете корзину k, при условии что вытащили оттуда изначально белый шар?
Это как понять вроде же должно быт наоборот — при усолвии что выбрали корзину k, вероятность того что вытащили оттуда шарик белый,

Сам расчет : считали P1 = k / (сумма по C(k)) Какой в этом смысл?
Если вы считали вероятность вытащить белый шарик при условии, что выбрали ящик с номером k, то вероятность будет 1/N * k/N
Поясните пожалуйста что вы считали я не понял...
В моем новом решении примерно такой же подход, но вероятность которая у вас P1 у меня вычислена как просто 1/N — вероятность выбрать ящик k. Так как задача изменилась
когда мы вытащили шарик оттуда — нам не важно какова вероятност того что мы выберем ящик и вынем оттуда первый шарик — а только тот факт что мы оттуда выберем еще два белых шарика,
задача получается следующей — какова вероятность того, что мы выберем два подряд белых шарика после того как выбрали наугад ящик где ящик под номером k содержит k-1 белых шариков при общем количестве шариков равным N-1.
Разве я не прав?
Re[3]: [теорвер] белые шарики
От: Буравчик Россия  
Дата: 06.03.12 06:30
Оценка:
Здравствуйте, tsaple, Вы писали:

T>Сам расчет : считали P1 = k / (сумма по C(k)) Какой в этом смысл?


P1(k) — вероятность того, что первый белый шар был вытащен из корзины k.
По хорошему, надо было написать P1 = C(k) / (сумма по C(k)).
Best regards, Буравчик
Re[4]: [теорвер] белые шарики
От: Буравчик Россия  
Дата: 11.03.12 08:07
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>Здравствуйте, tsaple, Вы писали:


T>>Сам расчет : считали P1 = k / (сумма по C(k)) Какой в этом смысл?


Б>P1(k) — вероятность того, что первый белый шар был вытащен из корзины k.

Б>По хорошему, надо было написать P1 = C(k) / (сумма по C(k)).

Поясню.

По теореме Байеса: P(Ak|B) = P(B|Ak) * P(Ak) / SUM P(B|Ak)*P(Ak)
событие Ak — выбор корзины k
событие B — вытаскивание белого шара (первого)

P(Ak) — вероятность выбора корзины (до эксперимента): 1/n
P(B|Ak) — вероятность вытащить белый шар, если выбрана корзина k: k/n

P(Ak|B) — вероятность выбора корзины k при условии что вытащен белый шар:
P(Ak|B) = k/n * 1/n / SUM (k/n * 1/n) = k * 1/n^2 / (1/n^2 * SUM(k)) = k / SUM(k)
Best regards, Буравчик
Re: [теорвер] белые шарики
От: vdimas Россия  
Дата: 22.04.12 00:16
Оценка:
Здравствуйте, Кодт, Вы писали:

На пальцах, если N стремится к бесконечности, то вероятность достать 2 подряд шара одного цвета равна 1/4.

Если же N не стремится к бесконечности, то зайдем через матожидание.
Матожидание кол-ва белых шаров до начала событий соответственно:
1. n/2
2. (n/2)-1
3. (n/2)-2

Вероятности каждого события соответственно:
1. (n/2)/n
2. ((n/2)-1)/(n-1)
3. ((n/2)-2)/(n-2)

По условию задачи надо умножить вероятности (2) и (3):



Видно, что в пределе выражение стремится к 1/4, т.е. проходит проверку на здравый смысл.
Re[2]: [теорвер] белые шарики
От: vdimas Россия  
Дата: 22.04.12 01:15
Оценка:
Здравствуйте, vdimas, Вы писали:

Угу, сократил выражение, и понял, что оно не верно:


Потому что кол-во шаров не одинаковое, так же не учел специальное распределение по ящикам... Действительно, чуть сложнее выходит в аналитическом виде.

Вероятность, что мы выбрали правильный самый ящик в первый раз: (n-2)/n. Предлагаю подсчитать вероятность двух следующих событий в заведомо правильных ящиках и умножить на эту вероятность. Рассуждения такие же как предыдущем посту, только теперь:
— кол-во белых шаров всего w=(n^2+n)/2, черных b=n^2-w;
— кол-во шаров в неправильных ящиках w'=3, b'=2n-3;
— считаем вероятности как в предыдущем посту для w"=w-w', b"=b-b':

1. w"/(w"+b")
2. (w"-1)/(w"+b"-1)
3. (w"-2)/(w"+b"-2)

где w"+b"=n^2-2n

Формула многоэтажная, когда подставим выражения от n вместо w" и b", прямо сейчас сокращать лень...
Re[3]: [теорвер] белые шарики
От: dilmah США  
Дата: 22.04.12 02:28
Оценка:
V>Формула многоэтажная, когда подставим выражения от n вместо w" и b", прямо сейчас сокращать лень...

я читаю в плоском режиме, поэтому непонятно на какой именно вопрос ты отвечаешь, но на вопрос топикстартера в первых же постах правильно ответили -- 0.5, без многоэтажных формул
Re[4]: [теорвер] белые шарики
От: vdimas Россия  
Дата: 22.04.12 15:58
Оценка:
Здравствуйте, dilmah, Вы писали:

D>но на вопрос топикстартера в первых же постах правильно ответили -- 0.5, без многоэтажных формул


Во-первых, там тоже было многоэтажные, просто Mathcad сократил. Во-вторых, там решение с вольными допущениями.

И разве тебя не смущает ваши 0.5? Предположим, что у нас кол-во ящиков N+1, т.е. имеем одинаковое кол-во белых и черных шаров. В этом случае мы имеем дело с идеальным равномерным распределением 0,5 для шаров любого цвета, где вероятность вытащить любую заведомую комбинацию из 3-х шаров = 1/8, а любую заведомую комбинацию из 2-х шаров = 1/4. Но, по условию задачи тот факт, что мы убрали N+1 ящик, где были только черные, не влияет на результат. Итого, вытащить остальные 2 белых шара в системе из N ящиков после первого белого будет в точности равно вероятности вытащить их же после белого в системе из N+1 ящиков, т.е. 1/4.

В том направлении, куда пошел Буравчик, надо было взять все комбинации вытаскивания 3-х шаров подряд, из них взять только случаи, где первый шарик белый и затем найти отношение кол-ва нужных комбинаций к общему из этого подмножества с первым белым шаром.

На всякий случай написал программу, получил 0.25 при любом N:
#include <stdio.h>
#include <xutility>

const int N = 10;  

struct Variants { int var000, var0XX; };

// k - кол-во белых шаров в ящике
inline Variants iterate(int k) {
  Variants vars = {0};

  // итерация заведомо по первому белому шару
  for(int i1 = 0; i1 < std::min(k, N-2); i1++) {   
    for(int i2 = i1 + 1; i2 < (N-1); i2++) {
      for(int i3 = i2 + 1; i3 < N; i3++) {
        vars.var0XX++;
        if(i2 < k && i3 < k) vars.var000++;
      }
    }
  }

  return vars;
} 

int main(int argc, char* argv[])
{
  Variants vars = {0};

  for(int k = 1; k <= N; k++) {
    Variants tmp = iterate(k);
    vars.var000 += tmp.var000;
    vars.var0XX += tmp.var0XX;
  }

  printf("%f", double(vars.var000)/(vars.var000 + vars.var0XX));
}
Re[5]: [теорвер] белые шарики
От: vdimas Россия  
Дата: 22.04.12 16:12
Оценка:
Здравствуйте, vdimas, Вы писали:

V>На всякий случай написал программу, получил 0.25 при любом N:

V>
V>#include <stdio.h>
V>#include <xutility>

V>const int N = 10;  

V>struct Variants { int var000, var0XX; };

V>// k - кол-во белых шаров в ящике
V>inline Variants iterate(int k) {
V>  Variants vars = {0};

V>  // итерация заведомо по первому белому шару
V>  for(int i1 = 0; i1 < std::min(k, N-2); i1++) {   
V>    for(int i2 = i1 + 1; i2 < (N-1); i2++) {
V>      for(int i3 = i2 + 1; i3 < N; i3++) {
V>        vars.var0XX++;
V>        if(i2 < k && i3 < k) vars.var000++;
V>      }
V>    }
V>  }

V>  return vars;
V>} 

V>int main(int argc, char* argv[])
V>{
V>  Variants vars = {0};

V>  for(int k = 1; k <= N; k++) {
V>    Variants tmp = iterate(k);
V>    vars.var000 += tmp.var000;
V>    vars.var0XX += tmp.var0XX;
V>  }

V>  printf("%f", double(vars.var000)/(vars.var000 + vars.var0XX));
V>}
V>


Ошибка в последнем выражении. Тоже получается 1/3... чудеса...
printf("%f", double(vars.var000)/vars.var0XX);
Re[6]: [теорвер] белые шарики
От: Буравчик Россия  
Дата: 22.04.12 18:32
Оценка:
Здравствуйте, vdimas, Вы писали:

V>>На всякий случай написал программу, получил 0.25 при любом N:

V>Ошибка в последнем выражении. Тоже получается 1/3... чудеса...

Мой вариант. Всегда получается ~ 0.5

# -*- coding: utf-8 -*-
import random

# шар: БЕЛЫЙ и ЧЕРНЫЙ
class Ball:
    (WHITE, BLACK) = (0,1)

# корзина с шарами
class Basket:
    def __init__(self, total, whites):
        # Создает корзину, в которой всего *total* шаров, из которых *whites* белых
        self.total = total
        self.whites = whites
        
    def extractBall(self):
        # Достает из корзины шар и возвращает его цвет. При этом шар из корзины изымается
        ball_index = random.randint(1, self.total) 
        if ball_index <= self.whites:
            self.total -= 1
            self.whites -= 1
            return Ball.WHITE
        else:
            self.total -= 1
            return Ball.BLACK 


            
# Есть n ящиков, 
# в каждом из которых лежат k белых и n-k чёрных шариков 
# (k последовательно принимает значения 1..n).

n = 20                  # количество корзин

first_white = 0         # количество случаев, когда первым выпал белый шар
three_white = 0         # количество случаев, когда вытащили подряд три белых шара

for test in xrange(1000*1000):
    # случайно выбираем корзину
    k = random.randint(1,n)
    busket = Basket(n, k)
    
    # вытаскиваем первый белый шар
    if busket.extractBall() != Ball.WHITE:
        continue
    first_white += 1
    
    # вытаскиваем еще два белых шара
    if busket.extractBall() != Ball.WHITE:
        continue
    if busket.extractBall() != Ball.WHITE:
        continue
    three_white += 1


    
print three_white * 1.0 / first_white
... << RSDN@Home (RF) 1.2.0 alpha 5 rev. 17>>
Best regards, Буравчик
Re[7]: [теорвер] белые шарики
От: vdimas Россия  
Дата: 22.04.12 21:18
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>Мой вариант. Всегда получается ~ 0.5


Это у тебя уже эксперимент. А я имел ввиду подсчитать кол-во варианта 0XX и 000 через полный перебор всевозможных исходов.
Re: [теорвер] белые шарики
От: Caracrist https://1pwd.org/
Дата: 22.04.12 22:01
Оценка:
Здравствуйте, Кодт,

ответ 1/3

общая формула вероятности:
sigma( i=3 to n => (i-1)(i-2)/{n(n-1)(n-2)} )

для n=3 вероятность = 1/3
допустим для n вероятность = 1/3, и докажем для n+1
sigma( i=3 to n+1 => (i-1)(i-2)/{(n+1)n(n-1)} )

выносим последнее слогаемое
sigma( i=3 to n => (i-1)(i-2)/{(n+1)n(n-1)} ) + (n)(n-1)/{(n+1)n(n-1)}

умножаем на (n-2)
sigma( i=3 to n => (i-1)(i-2)(n-2)/{(n+1)n(n-1)(n-2)} ) + (n)(n-1)/{(n+1)n(n-1)}

выносим из сигмы
sigma( i=3 to n => (i-1)(i-2)/{n(n-1)(n-2)} ) * {(n-2)/(n+1)} + (n)(n-1)/{(n+1)n(n-1)}

заменяем sigma( i=3 to n => (i-1)(i-2)/{n(n-1)(n-2)} ) = 1/3
(n-2)/{3(n+1)} + (n)(n-1)/{(n+1)n(n-1)}

сокращаем
(n-2)/{3(n+1)} + 1/(n+1)

складываем
((n-2) + 3) / {3(n+1)}

сокращаем
(n+1)/{3(n+1)} = 1/3


~~~~~
~lol~~
~~~ Single Password Solution
Re[8]: [теорвер] белые шарики
От: dilmah США  
Дата: 22.04.12 23:14
Оценка:
V>Это у тебя уже эксперимент. А я имел ввиду подсчитать кол-во варианта 0XX и 000 через полный перебор всевозможных исходов.

ты как-то неправильно считаешь исходы:

#!/bin/sh

generate_all()
{
  n=$1
  for k in $(seq 1 $n); do
    for a in $(seq 1 $k); do
      for b in $(seq 1 $n); do
        for c in $(seq 1 $n); do
          echo $k $a $b $c
        done
      done
    done
  done
}

filter_out_invalid()
{
  awk '$2 != $3 && $2 != $4 && $3 != $4'
}

count_outcomes()
{
  awk -vx=0 -vy=0 '{ if ($3 <= $1 && $4 <= $1) ++x; else ++y } END { printf "all
 whites\t" x "\nfirst white but not all whites\t" y "\n" }'
}



$ generate_all 9 | filter_out_invalid | count_outcomes
all whites      1260
first white but not all whites  1260
Re: [теорвер] белые шарики
От: MasterZiv СССР  
Дата: 23.04.12 08:42
Оценка:
On 02/19/2012 08:45 PM, Кодт wrote:

> Какова вероятность того, что если мы вынем оттуда ещё два шарика, они тоже

> окажутся белыми?

Очевидно, 50%. Успокойся уже, иди работай.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: [теорвер] белые шарики
От: dilmah США  
Дата: 23.04.12 09:58
Оценка:
MZ>Очевидно, 50%. Успокойся уже, иди работай.

ну, если 2 множества (эл.исходов), которые выглядят так соблазнительно просто, всегда содержат одинаковое кол-во элементов, то возникает соблазн найти какую-нибудь естественную биекцию между ними.
Re[2]: Формальное решение 1/3
От: Caracrist https://1pwd.org/
Дата: 23.04.12 13:28
Оценка:
Скажите если нужно объяснить это
C>общая формула вероятности:
C>
C>sigma( i=3 to n => (i-1)(i-2)/{n(n-1)(n-2)} )
C>
~~~~~
~lol~~
~~~ Single Password Solution
Re: 1/3
От: vladimir_i СССР  
Дата: 24.04.12 19:16
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Вычитал у К.Кнопа в жж задачку.

К>...


Для начала, следует сразу вынуть из всех ящиков по 1 белому шару. Это ключевой шаг.

Получаем количество белых шаров(вероятность достать два) по ящикам в следующих случаях:

n=3
0(0) 1(0) 2(1) => p=1/3

n=4
0(0) 1(0) 2(1/3) 3(1) => p=(1+1/3)/4 = 1/3

n=5
0(0) 1(0) 2(2/4*1/3) 3(3/4*2/3) 4(1)=> p=(1+1/6+1/2)/5 = 1/3

...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.