根据楼主的设想我们可以推算出来,楼主的一代祖先(父母)2人,二代祖先4人,三代祖先8人,N代祖先就是2^N人。那如果往上30代呢?就是2^30约等于10亿人........
截止到目前为止这个算法没毛病,我们继续看.......
假设1代20年计算,30代之前也就是600年之前,在明初的时候中国一共有多少人呢?
(数据来源于:韦氏通典• 卷七• 户籍人口)
从上图看出,其实600年前,我们全国也就5000万人+的样子,所以问题就来了,全国的祖先不够楼主一个人用的.......尴尬了.......
所以楼主的算法肯定是有哪儿不对的,但具体是哪儿呢?
其实楼主漏算了一种情况,就是亲属之间的婚姻(注意:不是近亲结婚)
其实在交通不是很发达的年代,对于大多数人找媳妇儿基本都不会走远,不是本村就是邻村的,而一个村的祖先基本上也就是几个人,所以就会出现一个问题,在古代结婚对象跟自己基本都有亲缘关系。这种情况不仅在中国,在国外也很常见英国。女王伊丽莎白二世、瑞典国王卡尔十六世•古斯塔夫、丹麦女王玛格丽特二世、西班牙国王胡安•卡洛斯一世等都是维多利亚女王的后代。 虽然人家美名曰保持血统纯正,不过从遗传角度来讲跟我们一个村里互相通婚是一码事......
所以楼主的算法中唯一没有考虑周全的地方就在于祖先们的DNA不是相互独立的,而是互相交换的。那么在这种现实基础上,我们可以做些什么呢?
可以假设下图中A行是一对夫妻的染色体,B行就是他们的孩子的染色体情况
随着这对夫妻的孩子继续生孩子(排除近亲结婚),越远的后代身上属于这对夫妻的DNA越少。
但是只要时间不是太久(比如200年以内),总还是有一定概率找到两个人身上相同的属于这对夫妻的DNA片段。
所以通过比较两个人身上是否具有相同DNA的片段(IBD)就能够判断两个人是否存在亲缘关系,比较片段的大小可以估算出两个人关系的远近。如果是较近的亲戚甚至可以通过遗传规律直接计算出实际关系(如下图)。
(数据来源于Ancestry white paper)
可以直接计算出的关系包括父子、兄弟、同异卵双胞胎以及表亲等。再远一点的关系只能分级了而不能直接计算出来,分级方式详见下图。
(上图来源于23魔方App——「基因关系」功能)
根据23魔方的大数据库统计,任意一对陌生人之间拥有9级关系的概率是0.00016。
换句话说任意200人之间平均可以找到0.00016*(200*199/2)=3.18对
对于个人来讲,每1万个陌生人中就有可能有1.6个人跟自己流淌着同样的血脉。
换句话说,如果有寻亲需求的话,做个「基因关系」检测,然后等待数据库增大后自动匹配就很有希望找到自己的亲人。