作者:NGA-N3UROTOXIN
本攻略提供《集合啦!动物森友会》中现有八种花卉共计种基因型中种基因型的入手路线(能栽培出并唯一地确定基因型才算入手)。
[目录]一、基因型的二进制标识、字母标识及其别称
二进制标识
字母标识
别称
二、关于入手路线
计算入手路线所用到的假设
基因型的入手
三、入手路线图
图例说明
波斯菊Cosmos
菊花Mums
三色堇Pansies
玫瑰Roses
郁金香Tulips
银莲花Windflowers
一、基因型的二进制标识、字母标识及其别称
[二进制标识]
游戏程序中用二进制标识表示花的基因型,每两位0/1代表一对基因,每对基因可能的取值有且仅有11、01和00这三种。玫瑰的基因型由8位的二进制标识表示,有4对基因;其余花的基因型由6位的二进制标识表示,有3对基因。[字母标识]
现在做如下定义:
波斯菊、风信子、百合花、菊花、郁金香的三对基因是R(红)、Y(*)、S(特殊);
三色堇的三对基因是R(红)、Y(*)、B(蓝);
银莲花的三对基因是R(红)、O(橙)、B(蓝);
玫瑰的四对基因是R(红)、Y(*)、P(紫)、S(特殊)。
那么,二进制标识为的玫瑰就可以表示为RRYyppSS这种生物学通用的字母标识。
注:这个定义是在[ACNHFlowerGeneticsGuide]的基础上修改得来的。原文对W基因的定义我个人不太能接受,所以我在观察基因型颜色对照表后,将W基因的部分替换成了B基因/P基因。
[别称]二进制标识和字母标识都有点长,所以我定义了一种较为简短的别称。字母标识和别称的转换逻辑如下:
某个体拥有形为XX的基因,表明它X得很厉害,所以将XX简写为X(单个大写)
某个体拥有形为Xx的基因,表明它有点X,所以将Xx简写为x(单个小写)
某个体拥有形为xx的基因,表明它一点也不X,所以将xx简写为(啥都没有)
二、关于入手路线
[计算入手路线所用到的假设]
从商店中售卖的种子开始入手花朵都是两两配对繁殖,不考虑多花运动允许以下7种操作(英文名是我自己乱起的,仅作为每种操作的代称):
seed:直接从商店获得种子(基因型确定)。
inbreed:使用一种已知基因型的花朵作为亲代,(单独放置待其自我复制后)自交,生成可以通过颜色确定基因型的子代。
crossbreed:使用两种已知基因型的花朵作为亲代,杂交,生成可以通过颜色确定基因型的子代。
inbreed-inbreed:使用一种已知基因型的花朵作为亲代,(单独放置待其自我复制后)自交,生成特定颜色但存在多种基因型可能的子代,对于这些子代中的每一株花朵,单独放置待其自我复制后做自交测试,若生成了特定颜色的孙代,则可以推定该子代和孙代的基因型。
inbreed-crossbreed:使用一种已知基因型的花朵作为亲代,(单独放置待其自我复制后)自交,生成特定颜色但存在多种基因型可能的子代,对于这些子代中的每一株花朵,将其与某种颜色的商店种子做杂交测试,若生成了特定颜色的孙代,则可以推定该子代和孙代的基因型。
crossbreed-inbreed:使用两种已知基因型的花朵作为亲代,杂交,生成特定颜色但存在多种基因型可能的子代,对于这些子代中的每一株花朵,单独放置待其自我复制后做自交测试,若生成了特定颜色的孙代,则可以推定该子代和孙代的基因型。
crossbreed-crossbreed:使用两种已知基因型的花朵作为亲代,杂交,生成特定颜色但存在多种基因型可能的子代,对于这些子代中的每一株花朵,将其与某种颜色的商店种子做杂交测试,若生成了特定颜色的孙代,则可以推定该子代和孙代的基因型。
[基因型的入手]我们将通过操作A生成了花朵F并确认其基因型为G这个过程简化描述为通过操作A入手基因型G。在约定的假设下,每种花能够入手的基因型数量如下:波斯菊(15/27),风信子(27/27),百合花(27/27),菊花(25/27),三色堇(27/27),玫瑰(65/81),郁金香(26/27),银莲花(27/27)。
若我们将crossbreed-crossbreed中二代杂交测试的对象从商店种子扩展为任意已知基因型,那么波斯菊能够再多入手一种基因型,这种基因型的入手操作也被纳入了本攻略中。由于珍花岛上花的基因型固定,且都已存在于上述可入手基因型中,所以使用珍花岛的花对入手更多基因型没有帮助。
同一种基因型通过不同操作入手,则对应的入手成本[1]也可能不同。本攻略将在入手路线图中给出每种基因型入手成本最低的操作。
除了入手路线图,本攻略准备了一些[附加资料]以供参考。其中txt文件是入手文档[2],csv文件是基因型数据表[3]。
[1]成本的定义
约定:
花朵长大开花≈1单位成本
自我复制1次≈1单位成本
生成出货率为p的目标子代≈1/p单位成本
入手成本的计算分为3个阶段:
1.准备一对亲代
以自交起手的inbreed、inbreed-inbreed和inbreed-crossbreed需要准备单个亲代、等待亲代长大开花、等待亲代自我复制1次凑成一对,所以成本=亲代最低入手成本+2。
以杂交起手的crossbreed、crossbreed-inbreed和crossbreed-crossbreed需要准备两个亲代,所以成本=两个亲代最低入手成本值。
2.生成目标子代假设目标子代出货率为p。
对于p≥1/4的操作,生成目标子代需要等待亲代均长大开花、生成出货率为p的目标子代,所以成本=1+1/p。
对于p≤1/8的操作,我们采取以量取胜的策略,通过自我复制,将交配基数从1对提升至1/4p对,这样,后续综合出货率p=p*(1/4p)=1/4,对应4单位成本。提升交配基数需要log2(1/4p)轮。每轮需要等待亲代长大开花、亲代自我复制1次,所以成本为2。但由于扩张会占用更多地面,且要保证亲代双方都完成自我复制相对比较困难,所以每轮成本加1作为惩罚。最终,生成目标子代需要等待亲代均长大开花、提升交配基数至1/4p对、生成综合出货率为1/4的目标子代,所以成本=1+log2(1/4p)*3+4=log2(1/4p)*3+5。
对于p≤1/64的操作,按照上述以量取胜的策略,交配基数需要提升至16对或更高,占地面积过大,不具有较高的可行性。因此我们限制交配基数提升上限为16对,这样,后续综合出货率p=16p。最终,生成目标子代需要等待亲代均长大开花、提升交配基数至16、生成综合出货率为16p的目标子代,所以成本=1+log2(16)*3+1/16p=1/16p+13。
由于出货率只存在有限种取值,我们可以直接将出货率和生成目标子代的成本的对应关系列出来:
p=1/1,cost=2
p=1/2,cost=3
p=1/4,cost=5
p=1/8,cost=8
p=1/16,cost=11
p=1/32,cost=14
p=1/64,cost=17
p=1/,cost=21
p=1/,cost=29
3.生成目标孙代(仅适用于后四种需要生成孙代的操作)假设目标子代出货率为p,和目标子代同色的所有子代出货率之和为p_total(p_totalp),目标孙代出货率为p2。生成目标孙代的成本=1+取整((1/p2)*(p_total/p)),若生成孙代的方式是自交,则成本在此基础上额外+1。
上述式子中,p_total/p是作为惩罚项而存在的:在p和p2固定的情况下,p_total越高,我们需要同时测试的子代数量就越多,所以对应的成本也越高。
入手成本为上述3个阶段的成本之和,但有两个特例:
1.seed对应的入手成本为0。2.若亲代都是种子,那么对应的入手成本固定为2,因为只要种足够多的种子,用1单位成本让种子长大开花,再用1单位成本出货就行了。
[2]入手文档
入手文档记录了每种基因型入手成本最低的十个(若有)操作。由于写代码的时候用的都是英文,所以生成的文档也是英文的。对于7种操作,文档内的展示格式如下(斜体字为变量):
seed(前置成本-成本):种子的颜色(种子的别称)
inbreed(前置成本-成本):亲代的颜色(亲代的别称)-目标子代的出货率目标子代的颜色(目标子代的别称)
crossbreed(前置成本-成本):亲代1的颜色(亲代1的别称)x亲代2的颜色(亲代2的别称)-目标子代的出货率目标子代的颜色(目标子代的别称)
inbreed-inbreed(前置成本-成本):亲代的颜色(亲代的别称)-和目标子代同色的所有子代出货率之和(目标子代的出货率)目标子代的颜色(目标子代的别称)-目标孙代的出货率目标孙代的颜色(目标孙代的别称)
inbreed-crossbreed(前置成本-成本):亲代的颜色(亲代的别称)-和目标子代同色的所有子代出货率之和(目标子代的出货率)目标子代的颜色(目标子代的别称)x杂交测试所用花朵的颜色(杂交测试所用花朵的别称)-目标孙代的出货率目标孙代的颜色(目标孙代的别称)
crossbreed-inbreed(前置成本-成本):亲代1的颜色(亲代1的别称)x亲代2的颜色(亲代2的别称)-和目标子代同色的所有子代出货率之和(目标子代的出货率)目标子代的颜色(目标子代的别称)-目标孙代的出货率目标孙代的颜色(目标孙代的别称)
crossbreed-crossbreed(前置成本-成本):亲代1的颜色(亲代1的别称)x亲代2的颜色(亲代2的别称)-和目标子代同色的所有子代出货率之和(目标子代的出货率)目标子代的颜色(目标子代的别称)x杂交测试所用花朵的颜色(杂交测试所用花朵的别称)-目标孙代的出货率目标孙代的颜色(目标孙代的别称)
[3]基因型数据表
该表格在[Genespreadsheet]的基础上添加了三列,分别代表别称、二进制标识和最低入手成本。
三、入手路线图
[图例说明]
每个圆形节点代表一种基因型,并注有该节点的成本、二进制标识和别称。节点外圈默认为实线,若标记为虚线则说明该节点的成本不是最低的,该节点会用灰色········虚线和该基因型成本最低的节点相连。如果出现多个同为成本最低的节点,则它们之间会用灰色·-·-·-·-虚线相连(很少见)。有时由于排版空间不足,某些节点会被复制一份到其他位置作为后续操作的起点,被复制的节点会用灰色。
虚线实心箭头指向复制出来的节点。
若存在用黑色------虚线框起来的多个同色节点,说明同色节点中标注出基因型的节点无法直接确认基因型,需要后续自交测试或杂交测试来确认,即入手操作是7种操作中的后4种。目标孙代节点会用灰色实线空心箭头指向被确认的子代节点。
注:如果只想收集颜色,可以只看图中用红色标记的部分。
[波斯菊Cosmos]
可入手基因型数量(16/27)
[菊花Mums]
可入手基因型数量(25/27)
[三色堇Pansies]
可入手基因型数量(27/27)
[玫瑰Roses]
可入手基因型数量(65/81)
[郁金香Tulips]
可入手基因型数量(26/27)
[银莲花Windflowers]
可入手基因型数量(27/27)