首页 > 试题

3月

更新时间:2023-01-24 04:45:58 阅读: 评论:0

中考语文如何拿高分-渑池之会的故事


2023年1月24日发(作者:新雅粤菜)

关于“古典问题:有⼀对兔⼦,从出⽣后第3个⽉起每个⽉都⽣⼀

对兔⼦……”理清问题,⽆往⽽不胜

被⼀窝兔⼦绊倒!

古典问题:有⼀对兔⼦,从出⽣后第3个⽉起每个⽉都⽣⼀对兔⼦,⼩兔⼦长到第三个⽉后每个⽉⼜⽣⼀对兔⼦,假如兔⼦都不死,问每个

⽉的兔⼦总数为多少?

本⼈是在搜问题时,发现有伙伴在百度提问,并试着理解并寻找问题发⽣的根源——误解了题⽬,还是解题困难。通过接受和理解问题提

出者的困惑后,发现疑惑和误解是可以理解的,我试着为题⽬增加⼀些限制和说明,使得对题⽬的把握更加准确,或者说减少题⽬本⾝存在

的歧义,使之更加明确。⾄于问题的解法,⽅法有多种,⽽且提供解法的⽂章数不胜数,不再赘述,如需了解,请再简单搜索⼀下。

(百度问题:.如果您看到这两处的说法⼀样,不要奇怪,都出⾃于本⼈。其中内容包括问题的直接回答,及对其中⼀个回答者的内容进⾏评

论,即回答了其中⼀个回答者的回复)

题⼲分析(减少歧义):不可将“第3个⽉”看成了(理解成)“隔3个⽉”。准确的理解是“如当下是1⽉初,2⽉初则是第⼆⽉,3⽉初就是第

三个⽉”。这⾥如果说成两⽉即61天(2个⽉,忽略闰⼆⽉,假如闰⼆⽉时,按⽉算)后。这样会减少不是歧义。

问题解析:这是⼀个典型的“波⾮那切数列”:前⾯相邻两项之和,构成了后⼀项(即:后⼀项,总等于前两项之和)。

关于:“前⾯相邻两项之和,构成了后⼀项”的理解:(

依据:“第3个⽉起每个⽉都⽣⼀对”(这⾥容易造成误解的是,第3个⽉起,这个起始时间点,是指⽉初还是⽉末的问题,从这个经典问题的

初衷来说,是指的⽉初)。

因此:“第3个⽉,即隔2个⽉(约61天,闰⽉则忽略并按⽉来算)就发⽣”。

结论:

(1)上⼀个⽉的兔⼦(n),在下⼀个⽉,保持到下⼀⽉(n);即⽼兔数=上⽉兔⼦总数。

(2)第3⽉出⽣的兔仔,由上上⽉(第前3⽉)的兔⼦所⽣,且是1对⽣1对,1:1的⽐例。及兔仔数=上上⽉的兔⼦总数。

(3)总数=上⽉兔⼦总数+上上⽉的兔⼦总数(也即相邻两项之和)

个⼈的⼀段⼩解法:

(1)迭代算法⽅式

tirver;

2

3publicclassrver{

4

5//11235

6publicstaticvoidmain(String[]args){

7intmonth;

8for(inti=1;i<10;i++){

9month=i;

10intcount=printCountByMonth(month);

n("第"+month+"⽉,⼩兔数为:"+count+"(对)");

n();

13}

14}

15

16publicstaticintprintCountByMonth(intmonth){

17if(month<1)thrownewRuntimeException("⽉数不可⼩于1个⽉");

18intfirst=1;

19intcond=1;

20intthird=0;

21if(month==1||month==2)return1;

22booleanflag=true;

23while(month>0){

24first=cond;

25cond=third;

26third=first+cond;

27month--;

28if(flag){

29flag=fal;

30}el{

(",");

32}

(third);

34}

n();

36returnthird;

37}

38}

运⾏结果:

第1⽉,⼩兔数为:1(对)

第2⽉,⼩兔数为:1(对)

1,1,2

第3⽉,⼩兔数为:2(对)

1,1,2,3

第4⽉,⼩兔数为:3(对)

1,1,2,3,5

第5⽉,⼩兔数为:5(对)

1,1,2,3,5,8

第6⽉,⼩兔数为:8(对)

1,1,2,3,5,8,13

第7⽉,⼩兔数为:13(对)

1,1,2,3,5,8,13,21

第8⽉,⼩兔数为:21(对)

1,1,2,3,5,8,13,21,34

第9⽉,⼩兔数为:34(对)

Processfinishedwithexitcode0

(2)递归算法⽅式

1publicclassBFNQFun{

2publicstaticvoidmain(String[]args){

3intin=9;

4intcount=getCount(in);

n();

n("in="+in+",getCount="+count);

7}

8

9publicstaticintgetCount(intin){

(in+",");

11if(in<=0)return1;

12if(in==1)return1;

13returngetCount(in-1)+getCount(in-2);

14}

15}

运⾏结果:(为了便于阅读,对下⾯的换⾏是⼿动修改的,并⾮原样,但数据总数不变)

9,8,7,6,5,4,3,2,1,0,1,2,1,0,3,2,1,0,1,4,3,2,1,0,1,2,1,0,

5,4,3,2,1,0,1,2,1,0,3,2,1,0,1,6,5,4,3,2,1,0,1,2,1,0,3,2,

1,0,1,4,3,2,1,0,1,2,1,0,7,6,5,4,3,2,1,0,1,2,1,0,3,2,1,0,

1,4,3,2,1,0,1,2,1,0,5,4,3,2,1,0,1,2,1,0,3,2,1,0,1,

in=9,getCount=55

⼩结:

从打印的“,”符号统计:

迭代算法:35个“,”.

递归算法:108个“,”.

即可得出:效率递归算法弱与迭代算法,也就是说,本次运算中递归算法优于迭代算法。

本文发布于:2023-01-24 04:45:58,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/88/124899.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:拟人的句子
下一篇:己亥杂诗其五
标签:3月
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图