Вы имеет ввиду случай, когда в элементе будут ссылки на дочернии и на родительский. В таком случае да, достаточно удобно родительскую ссылку сделать "слабой", чтобы избежать циклических ссылок. Тогда структуру можно будет удалить просто удалив корень. С другой стороны, если этого не делать, когда вся ваша структура будет не доступна из кода, она удалится сборщиком мусора.
В задаче 1, по-моему, можно просто посчитать P(в какой-то из 90-х дней) = 1 — P(не в какой из 90 дней) = 1 — произведение P(не в i день) = 1 — произведение (1 — P(в i день)). Можно вывести в аналитическом виде.
В задаче 4, вроде бы, можно посчитать вероятность P(количество просмотренных подарков <= k) = C_100^k * k^100 / 100^100. Тогда можно высчитать P(количество просмотренных подарков = k) = P(количество просмотренных подарков <= k) — P(количество просмотренных подарков <= k — 1). И в этом случае тоже можно вывести аналитическую формулу.
Вы имеет ввиду случай, когда в элементе будут ссылки на дочернии и на родительский. В таком случае да, достаточно удобно родительскую ссылку сделать "слабой", чтобы избежать циклических ссылок. Тогда структуру можно будет удалить просто удалив корень. С другой стороны, если этого не делать, когда вся ваша структура будет не доступна из кода, она удалится сборщиком мусора.
Указал, что статья - перевод.
В задаче 4, вроде бы, можно посчитать вероятность P(количество просмотренных подарков <= k) = C_100^k * k^100 / 100^100. Тогда можно высчитать P(количество просмотренных подарков = k) = P(количество просмотренных подарков <= k) — P(количество просмотренных подарков <= k — 1). И в этом случае тоже можно вывести аналитическую формулу.
В задаче 5 можно воспользоваться выводом аналитического вида для чисел Каталана.