Двоюродный племянник
Всех с новым годом и добро пожаловать в 2010 год, или, как предпочитает мой друг профессор Орбифолд (Orbifol), MMX год. Я надеюсь, ваши праздники были такими же веселыми и радостными, как и мои.
Выросшее семейство Липпертов продолжает расти. В этом году на ежегодное празднование Дня Подарков нам для ужина понадобились два переполненных стола, вместо одного, как было всегда. Старшие двоюродные сестры теперь все замужем, некоторые из них растят детей, а некоторые двоюродные братья и сестры помоложе, начали приходить со своими девушками и парнями. Хочу заметить, что самым младшим за столом был мой новый «двоюродный племянник», с которым завязалась долгая дискуссия о вычислении степени родства. Вот как бы работал такой общедоступный сервис.
Объяснение на основе рекурсии для программистов и математиков:
Базовый случай: Если X и Y «одноюродные» и относятся к одному и тому же поколению, значит X и Y – родные братья.
Рекурсивный случай 1: Если n > 1 и X и Y относятся к одному поколению, тогда X.Parent и Y.Parent являются (n-1)-юродными родственниками.
Рекурсивный случай 2: Если m > 0 и X и Y являются n-юродными родственниками и отличаются на m поколений, тогда без потери точности можно предположить, что X относится к более старшему поколению, чем Y. В этом случае X.Parent и Y являются n-юродными родственниками, различающимися на m – 1 поколение.
Объяснение для нормальных людей
Давайте рассмотрим двух разных людей, у которых есть общий предок, но которые не являются прямыми потомками один другого (т.е. не является матерью, отцом, бабушкой и т.д. другому):
Для определения степени родства (n-юродности) необходимо найти минимальное количество поколений, которое нужно пройти вверх по дереву, чтобы найти ближайшего общего предка.
Разница поколений – это модуль разницы между числом поколений, которое нужно пройти вверх по дереву для поиска ближайшего общего предка.
В качестве примера, давайте рассмотрим фрагмент генеалогического дерева:
Мэри
/ \
Лора Боб
| |
Джон Элен
| |
Ксеркс Мелинда
Давайте, в качестве примера, рассмотрим Элен и Ксеркс. Их ближайшим общим предком является Мэри. Для Элен нужно вернуться назад на два поколения, а для Ксеркс – на три. Минимальным значением чисел два и три является два. Модуль разницы между числами два и три – единица. Поэтому Элен и Ксеркс являются двоюродными тетей и племянницей, также как и Джон с Мелиндой (только в этом случае Джон является двоюродным дядей).
«Одноюродные» родственники с нулевой разницей поколений называются особым образом – родными братьями и сестрами. «Одноюродные» родственники с разницей поколений равной единице – это дядя и тети, племянники и племянницы. «Одноюродные» родственники с разницей поколений равной двум – это двоюродные дедушки, двоюродные бабушки, двоюродные внуки и двоюродные внучки.
Опишем это дерево:
Мэри – мама Лоры и Боба, бабушка Джона и Элен и прабабушка Ксеркс и Мелинды.
Лора – дочь Мэри, сестра Боба, мама Джона, тетя Элен, бабушка Ксеркс и двоюродная бабушка Мелинды.
Боб – сын Мэри, брат Лоры, дядя Джона, папа Элен, двоюродный дедушка Ксеркс и дедушка Мелинды.
Джон – внук Мэри, сын Лоры, племянник Боба, двоюродный брат Элен, отец Ксеркс и двоюродный дядя Мелинды.
Элен – внучка Мэри, племянница Лоры, дочь Боба, двоюродная сестра Джона, двоюродная тетя Ксеркс и мама Мелинды.
Ксеркс – правнук Мэри, внук Лоры, внучатый племянник боба, сын Джона, двоюродный племянник Элен и троюродный брат Мелинды.
Мелинда – прабабушка Мэри, внучатая племянница Лоры, внучка Боба, двоюродная племянница Джона, дочь Элен и троюродная сестра Ксеркс.
Конечно, все это достаточно просто. Скажем, если ваша мама умерла и ваш папа женился на ее сестре и у них будут еще дети, тогда определить родственные связи становится значительно сложнее. И только одному Богу известно, что будет, если ты будешь дедушкой самому себе.
Между прочим, в штате Вашингтон незаконно жениться на сестре своей вдовы. Не догадываетесь почему?
Comments
- Anonymous
June 05, 2010
Incidentally, it is illegal in the state of Washington for a man to marry his widow’s sister. ... на сестре своей вдовы.