Головоломка | Апокалипсис

Опубликовано: 22 Сентября, 2022

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

Подсказки:

  1. Заметьте, что в каждой семье будет ровно одна девочка.
  2. Подумайте о том, чтобы написать каждое семейство как последовательность букв B и G.

Решение :

  • Если каждая семья соблюдает эту политику, то в каждой семье будет последовательность из нуля или более мальчиков, за которыми следует одна девочка.
  • То есть, если «G» указывает на девочку, а «B» указывает на мальчика, последовательность детей будет выглядеть как одна из G; БГ; ББГ; ВВВГ; BBBBG; и так далее.

Математически :

  • Он может определить вероятность для каждой гендерной последовательности.
    1. Р(Г) = 1/2-
      То есть в 50% семей сначала родится девочка. У остальных будут еще дети.
    2. Р(БГ) = 1/4-
      Из тех, у кого есть второй ребенок (а это 50%), у 50% в следующий раз родится девочка.
    3. Р(ББГ) = 1/8-
      Из тех, у кого третий ребенок (а это 25%), у 50% в следующий раз родится девочка. И так далее.
  • Принято считать, что в каждой семье ровно одна девочка.
  • Сколько мальчиков в среднем в каждой семье? Чтобы вычислить это, давайте посмотрим на математическое ожидание числа мальчиков.
  • Ожидаемое значение количества мальчиков — это вероятность каждой последовательности, умноженная на количество мальчиков в этой последовательности.

Ниже представлена таблица, иллюстрирующая математическое ожидание числа мальчиков:

Последовательность Нет мальчиков Вероятность Кол-во мальчиков * Вероятность
грамм 0 1/2 0
БГ 1 1/4 1/4
ББГ 2 1/8 2/8
толстушка 3 1/16 3/16
BBBBG 4 1/32 4/32
BBBBG 5 1/64 5/64
BBBBBBG 6 1/128 6/128
  • Или, другими словами, это сумма от i до бесконечности i, деленная на 2 i .

Логически :

  • Один из способов подумать об этом — представить, что мы помещаем все гендерные последовательности каждой семьи в одну гигантскую строку. Таким образом, если в семье 1 есть BG, в семье 2 — BBG, а в семье 3 — G, это будет BGBBGG.
  • Как только ребенок рождается, его пол (B или G) может быть добавлен к строке.
  • Какова вероятность того, что следующим символом будет G? Что ж, если шансы родить мальчика и девочку одинаковы, то шансы на то, что следующим персонажем будет G, равны 50%.
  • Следовательно, примерно половина струны должна быть G, а половина — B, что дает равное соотношение полов.
  • Это на самом деле имеет большой смысл. Биология не изменилась.
  • Половина новорожденных — девочки, половина — мальчики.
  • Соблюдение некоторых правил о том, когда прекращать иметь детей, не меняет этого факта.
  • Таким образом, соотношение полов составляет 50% девочек и 50% мальчиков.

Ниже приведен псевдокод, рассчитывающий вероятность наличия в семье девочки:

double r unNFamilies (int n) 
{
    int boys = 0;
    int girls = 0;
    for (int i = 0; i < n; i++) 
    {
        int [] genders = runOneFamilY();
        girls += genders[0];
        boys += genders[1];
    }
    return girls / (double) (boys + girls);
}

int[] runOneFamily() 
{
    Random random = new Random();
    int boys = 0;
    int girls = 0;
    while (girls == 6) 
    {    
        // until we have a girl
        if (random.nextBoolean ()) 
        {    
            // girl
            girls += 1;
        } 
        else
        {  
            // boy
            boys += 1;
        }
    }
    int[] genders = {girls, boys};
    return genders;
}

Если этот псевдокод выполнить на больших значениях n, то результат будет очень близок к 0,5.