昨天预习时看到不死神兔这个题,以数学视角,稍稍心算了一下,发现越想越乱,始终找不到规律,且我始终抱着一种不同于网上所说算法的思维(,这时是还没有上网搜索相关帖子的)。
看到这个题目,我第一个想法就是按我习惯,第一次多少熟兔多少幼兔,第二次多少,第三次多少,一直纠结于它们转变的系数或者说因数。很乱,当天纠结着睡不着,从十二点到一点半,强迫自己睡觉去了。
第二天,同学讨论中,无意看到他们列表观察递归规律的时候,用的成长期这个概念。-——我一下反应过来,我思维中的算法,难点一下就解决了,原本只有熟兔幼兔两个容器来算,自然变数难以把控。到引入了成长期兔子,而幼兔不再表示二月兔,分开来形成独立的个体,疑问豁然而解。————下面来说算法:
内存容器,内存个体的衍生特性。——在语言中,有着三种传递机制,而这里就用到了值传递,只“衍生”一个值出去,自己是不变的。这种特性,刚好贴合现实世界中的繁衍范畴的规律。
建立三个容器,为了好理解,形象一点我可以将他们分别名为“幼体育婴室”,“成长期护养区”,“熟兔放养区”
这么说只是为了形象出来(其实直接就代表兔子就可以)
它们的随月份变化的流动关系是:
一,幼兔—>成长兔->熟兔
二,熟兔->熟兔自己衍生系数的幼兔,这里是1衍1
                ->熟兔自己数量是不变的,不会又退化成幼兔
这里关系就捋清了。
创建三个数组,分别存当月的幼兔,成长兔,熟兔,
一月时,.i=0,幼兔1,成长兔0,熟兔0
二月,i=1,幼兔0,幼兔->成长兔1,熟兔0
三月,成长兔<-由幼兔0“转职”,所以为0
熟兔<-成长兔1,熟兔此时数量即为1,
幼兔,<-熟兔衍生一只幼兔,自己熟兔身份不变
这个关系流转关系,就可以用变量之间的赋值,来完成了,以前月可以,得到当月。循环下,可以求到n月时兔子的数量。
代码就不传了,还差个人教我发博客