我们正在研究妖怪家族的血缘关系。每个妖怪都有相同数量的基因,但是不同的妖怪的基因可能是不同的。我们希望知道任意给定的两个妖怪之间究竟有多少相同的基因。由于基因数量相当庞大,直接检测是行不通的。但是,我们知道妖怪家族的家谱,所以我们可以根据家谱来估算两个妖怪之间相同基因的数量。
妖怪之间的基因继承关系相当简单:如果妖怪 是妖怪 和 的孩子,则 的任意一个基因只能是继承 或 的基因,继承 或 的概率各占 。所有基因可认为是相互独立的,每个基因的继承关系不受别的基因影响。
现在,我们来定义两个妖怪 和 的基因相似程度。例如,有一个家族,这个家族中有两个毫无关系(没有相同基因)的妖怪 和 ,及它们的孩子 和 。那么 和 相似程度是多少呢?因为 和 的基因都来自 和 ,从概率来说,各占 。所以,依概率计算 和 平均有 的相同基因, 和 的基因相似程度为 。需要注意的是,如果 和 之间存在相同基因的话, 和 的基因相似程度就不再是 了。
你的任务是写一个程序,对于给定的家谱以及成对出现的妖怪,计算它们之间的基因相似程度。