Алгоритмическое / вероятностное упражнение

Я пытаюсь выполнить упражнение из проекта Розалинд, но, по-видимому, продолжаю ошибаться. Полный текст доступен здесь, но моя более короткая абстрактная интерпретация и попытка заключаются в следующем. Пожалуйста, помогите мне найти, что я делаю не так:

У нас есть 3 группы товаров: AA, Aa, aa, Мы начинаем с 1 в Aa и делать k итерации генерации новых предметов. На каждой итерации каждый элемент в группе:

  • Aa может произвести: AA (25%), Aa (50%), aa (25%)
  • AA может произвести: AA (50%), Aa (50%)
  • aa может произвести: aa (50%), Aa (50%)

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

  • 0-й итер: AA: 0, Aa: 1, aa: 0
  • 1-й итер: AA:.5, Aa: 1, aa:.5
  • 2-й итер: AA: 1, Aa: 2, aa: 1
  • и т.д. - пропорции остаются между 1:2:1 между группами

Сумма ожидаемых значений / населения на каждой итерации 2^iteration и вероятность того, что предмет находится в группе Aa всегда 50%.

До сих пор я надеюсь, что я прав, но на самом деле мы стремимся к тому, чтобы: N предметы, которые находятся в группе Aa оба раза, если мы повторим эксперимент дважды. (должно быть эквивалентно: каковы шансы иметь по крайней мере N предметы в группе AaBb если мы расширим список групп до AABB, AABb.... из оригинального вопроса)

Таким образом, вероятность того, что предмет находится в Aa составляет 50%, сумма ожидаемых значений от итерации (или 2^iteration) и, бросая это при scipy, используя тестовые данные (k=2, N=1), мы получаем это по крайней мере для одного элемента в группе Aa:

In [75]: bin = scipy.stats.binom(4, .5)
In [76]: sum(b.pmf(x) for x in range(1, 4+1))
Out[76]: 0.93750000000000022

и это по крайней мере для одного элемента, если у нас есть два набора групп, так AaBb:

In [77]: sum(b.pmf(x) for x in range(1, 4+1))**2
Out[77]: 0.87890625000000044

Что полностью отличается от ответа в исходном вопросе: 0,684

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

1 ответ

Решение

Сначала я последовал вашему примеру и подумал, что он, кажется, имеет смысл, но через некоторое время я обнаружил, в чем проблема.

Вот указатель на вашу ошибку:

Вы рассчитали вероятность получения хотя бы одного Aa-- во втором поколении и хотя бы один --Bb, Но этого недостаточно, чтобы выяснить, есть ли хотя бы один AaBb во втором поколении Aa-- а также --Bb должны совпадать.

Рассмотрим для примера следующее второе поколение: aaBb, AABb, Aabb, AaBB Все люди имеют Aa-- или же --Bb но нет AaBb в поколении.

Другие вопросы по тегам