【Python】以不定条件下兔子总数计算为例-Python中对数量规律问题的思考与延展
2016-09-03 11:21
399 查看
~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~
看过前面文章的网友会发现,此题似乎在前面已经写过,并且在另一节素数筛选,博主还为了探寻一下不同语言的编程效率问题,特意列举了多种语言如C/C++/Python/Java/Php/C#/Pascal/Javascript/Go/,发现语言之间存在一种联系,那就是思考的方式是一样的,只不过表达的形式不同。
先把原题挂出来:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第3个月后每个月又生一对兔子,假如兔子都不死,问前24个月每个月的兔子总数为多少? 【其实这道题就是分析问题然后发现数列之间存在的fibonacci关系,但是不妨扩展一下思路,修改一下假设条件努力向实际情况靠拢进行数学建模,兔子是有寿命的,寿命符合一定的函数分布{这里就不深入讨论},兔子生小兔子的时间倒是基本固定,这个所以这个可以假设,一旦模型建立,只需要修改数字即可,下面我们就做一点小思考,假如第4个月才生小兔子呢,很明显此时不再满足fibonacci关系,那么我们又该解决问题呢?】
so,挂出new problem,有一对兔子,从出生后第4个月起每个月都生一对兔子,小兔子长到第4个月后每个月又生一对兔子,假如兔子都不死,问前24个月每个月的兔子总数为多少?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
首先我们先手写列出兔子数量规律,最原始也最有效:
好,观察完上式我们总结一下:
1.以每4个月为一次界,凡是活过了4个月的兔子往后每个月都会生出小兔子
2.以新出生的小兔子在过了4个月以后又会循环第一步
所以有如下规律总结:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~
Examination Problem
看过前面文章的网友会发现,此题似乎在前面已经写过,并且在另一节素数筛选,博主还为了探寻一下不同语言的编程效率问题,特意列举了多种语言如C/C++/Python/Java/Php/C#/Pascal/Javascript/Go/,发现语言之间存在一种联系,那就是思考的方式是一样的,只不过表达的形式不同。先把原题挂出来:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第3个月后每个月又生一对兔子,假如兔子都不死,问前24个月每个月的兔子总数为多少? 【其实这道题就是分析问题然后发现数列之间存在的fibonacci关系,但是不妨扩展一下思路,修改一下假设条件努力向实际情况靠拢进行数学建模,兔子是有寿命的,寿命符合一定的函数分布{这里就不深入讨论},兔子生小兔子的时间倒是基本固定,这个所以这个可以假设,一旦模型建立,只需要修改数字即可,下面我们就做一点小思考,假如第4个月才生小兔子呢,很明显此时不再满足fibonacci关系,那么我们又该解决问题呢?】
so,挂出new problem,有一对兔子,从出生后第4个月起每个月都生一对兔子,小兔子长到第4个月后每个月又生一对兔子,假如兔子都不死,问前24个月每个月的兔子总数为多少?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Analysis
首先我们先手写列出兔子数量规律,最原始也最有效:''' 问题分析: 11(1) -2 11(2) -2 11(3) -2 11(4) 11(1) -4 11(5) 11(2) 11(1) -6 11(6) 11(3) 11(2) 11(1) -8 11(7) 11(4) 11(3) 11(2) 11(1) 11(1) -12 11(8) 11(5) 11(4) 11(3) 11(2) 11(1) 11(1) 11(1) -16 ...c
好,观察完上式我们总结一下:
1.以每4个月为一次界,凡是活过了4个月的兔子往后每个月都会生出小兔子
2.以新出生的小兔子在过了4个月以后又会循环第一步
所以有如下规律总结:
..<pre name="code" class="python">... 兔子总数的规律总结如下: 1. 4 个月以内时,兔子总数为 2 2. 4 - 7 月时,兔子总数为 (i-2)*2 3.超过 4 个月时,兔子总数为 A2 + (i-5)*2 【i表示月数】
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Program
""" File: example11.py: Time:Created on 2016-08-31 23:49:21 Author: Sure """ #!/usr/bin/python # -*- coding: UTF-8 -*- import time print('当前时间:') print ( time.strftime( ' %Y-%m-%d %H:%M:%S',time.localtime(time.time()) ) ) A1 = 1 A2 = 1 for i in range(1 , 25): if i < 4: print("第 %d 月,兔子总数为%10d" %(i,A1+A2) ) elif 3 < i < 7: A2 = (i-2)*2 print("第 %d 月,兔子总数为%10d" %(i,A2)) else: A2 = A2 + (i-5)*2 print('第 %d 月,兔子总数为%10d' %(i, A2) )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Results
当前时间: 2016-09-03 16:55:38 第 1 月,兔子总数为 2 第 2 月,兔子总数为 2 第 3 月,兔子总数为 2 第 4 月,兔子总数为 4 第 5 月,兔子总数为 6 第 6 月,兔子总数为 8 第 7 月,兔子总数为 12 第 8 月,兔子总数为 18 第 9 月,兔子总数为 26 第 10 月,兔子总数为 36 第 11 月,兔子总数为 48 第 12 月,兔子总数为 62 第 13 月,兔子总数为 78 第 14 月,兔子总数为 96 第 15 月,兔子总数为 116 第 16 月,兔子总数为 138 第 17 月,兔子总数为 162 第 18 月,兔子总数为 188 第 19 月,兔子总数为 216 第 20 月,兔子总数为 246 第 21 月,兔子总数为 278 第 22 月,兔子总数为 312 第 23 月,兔子总数为 348 第 24 月,兔子总数为 386
相关文章推荐
- 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 兔子的规律为数列1,1,2,3,5,8,13,21...
- 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- C语言100个经典的算法之兔子总数计算内含printf的用法
- [Python]计算闰年时候出现的and和or优先级的问题以及短路逻辑
- 两个递推的方法,兔子数量问题
- Python入门经典 以解决计算问题为导向的Python编程 待完好
- 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一 对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- python3 科学计算模块 numpy、pandas、sns、seaborn等模块安装遇到的问题
- 8. 兔子数量问题
- 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- 关于Python中函数重载问题的思考(原创)
- [Java] 练习题001: 计算兔子的数量
- Python计算图形中三角形数量
- 古典问题:兔子出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问两年内每个月的兔子总数为多少?(斐波那切数列)
- python chilkat mht保存的问题与思考
- python默认的是17位小数的精度,但是这里有一个问题,就是当我们的计算需要使用更高的精度(超过17位小数)的时候该怎么做呢?
- 关于类似朋友圈的发布时间间隔计算问题(python)
- 在arcgis使用python脚本进行字段计算时是如何解决中文问题的
- python 常见问题思考