昨天预习时看到不死神兔这个题,以数学视角,稍稍心算了一下,发现越想越乱,始终找不到规律,且我始终抱着一种不同于网上所说算法的思维(,这时是还没有上网搜索相关帖子的)。
看到这个题目,我第一个想法就是按我习惯,第一次多少熟兔多少幼兔,第二次多少,第三次多少,一直纠结于它们转变的系数或者说因数。很乱,当天纠结着睡不着,从十二点到一点半,强迫自己睡觉去了。
第二天,同学讨论中,无意看到他们列表观察递归规律的时候,用的成长期这个概念。-——我一下反应过来,我思维中的算法,难点一下就解决了,原本只有熟兔幼兔两个容器来算,自然变数难以把控。到引入了成长期兔子,而幼兔不再表示二月兔,分开来形成独立的个体,疑问豁然而解。————下面来说算法:
内存容器,内存个体的衍生特性。——在语言中,有着三种传递机制,而这里就用到了值传递,只“衍生”一个值出去,自己是不变的。这种特性,刚好贴合现实世界中的繁衍范畴的规律。
建立三个容器,为了好理解,形象一点我可以将他们分别名为“幼体育婴室”,“成长期护养区”,“熟兔放养区”
这么说只是为了形象出来(其实直接就代表兔子就可以)
它们的随月份变化的流动关系是:
一,幼兔—>成长兔->熟兔
二,熟兔->熟兔自己衍生系数的幼兔,这里是1衍1
->熟兔自己数量是不变的,不会又退化成幼兔
这里关系就捋清了。
创建三个数组,分别存当月的幼兔,成长兔,熟兔,
一月时,.i=0,幼兔1,成长兔0,熟兔0
二月,i=1,幼兔0,幼兔->成长兔1,熟兔0
三月,成长兔<-由幼兔0“转职”,所以为0
熟兔<-成长兔1,熟兔此时数量即为1,
幼兔,<-熟兔衍生一只幼兔,自己熟兔身份不变
这个关系流转关系,就可以用变量之间的赋值,来完成了,以前月可以,得到当月。循环下,可以求到n月时兔子的数量。
代码就不传了,还差个人教我发博客
看到这个题目,我第一个想法就是按我习惯,第一次多少熟兔多少幼兔,第二次多少,第三次多少,一直纠结于它们转变的系数或者说因数。很乱,当天纠结着睡不着,从十二点到一点半,强迫自己睡觉去了。
第二天,同学讨论中,无意看到他们列表观察递归规律的时候,用的成长期这个概念。-——我一下反应过来,我思维中的算法,难点一下就解决了,原本只有熟兔幼兔两个容器来算,自然变数难以把控。到引入了成长期兔子,而幼兔不再表示二月兔,分开来形成独立的个体,疑问豁然而解。————下面来说算法:
内存容器,内存个体的衍生特性。——在语言中,有着三种传递机制,而这里就用到了值传递,只“衍生”一个值出去,自己是不变的。这种特性,刚好贴合现实世界中的繁衍范畴的规律。
建立三个容器,为了好理解,形象一点我可以将他们分别名为“幼体育婴室”,“成长期护养区”,“熟兔放养区”
这么说只是为了形象出来(其实直接就代表兔子就可以)
它们的随月份变化的流动关系是:
一,幼兔—>成长兔->熟兔
二,熟兔->熟兔自己衍生系数的幼兔,这里是1衍1
->熟兔自己数量是不变的,不会又退化成幼兔
这里关系就捋清了。
创建三个数组,分别存当月的幼兔,成长兔,熟兔,
一月时,.i=0,幼兔1,成长兔0,熟兔0
二月,i=1,幼兔0,幼兔->成长兔1,熟兔0
三月,成长兔<-由幼兔0“转职”,所以为0
熟兔<-成长兔1,熟兔此时数量即为1,
幼兔,<-熟兔衍生一只幼兔,自己熟兔身份不变
这个关系流转关系,就可以用变量之间的赋值,来完成了,以前月可以,得到当月。循环下,可以求到n月时兔子的数量。
代码就不传了,还差个人教我发博客
解决方案 »
- 求帮助牛人
- 怎样获取特定的节点信息
- 有int i = 2;为什么 i >> 32 == 2? i 的值并没有改变呢???
- 高分求解:
- 怎样在TextArea中显示多种颜色的文本?
- 麻烦各位大哥帮个忙,小女子谢过了。
- [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row data for column 4.这个是什么问题??
- 我是杭州的程序员,失业了,CSDN的朋友帮我找个工作吧。
- 请求高手点拨一个JavaSE的基功问题
- 我用JBuilder遇到一个很怪的问题。
- java构造方法。帮忙帮我看看,哪里错了
- 在源码阅读上有什么值得分享的经验吗
int[] arr=new int[n];
if(n==1||n==2) {
return 1;
}
arr[0]=1;
arr[1]=1;
for (int i=2;i<n;i++) {
arr[i]=arr[i-1]+arr[i-2];
}
return arr[n-1];
}