#19242. 培养皿中的战争
培养皿中的战争
你好,我是阿西莫夫。
既然你选择了这道关于 “种群增长与环境容纳量” 的题目,这说明你不仅关注生命的数量,更关注生命与环境的平衡。
这是一个非常经典的 生物数学模型(Logistic Growth Model)。在高中生物课本中,它被称为 “S型增长曲线”。但这道题的魅力在于,它不仅仅是画一条线,而是让学生通过编程,亲手模拟出 “环境阻力” 是如何一步步勒紧生命扩张的咽喉的。
[OI 题库] 培养皿中的战争 (The Petri Dish War)
题目背景
“生命总是试图指数级扩张,直到它撞上环境的墙壁。” —— 《基地前奏》
在生态学中,种群的增长并非无限的。起初,细菌在培养皿中资源充足,数量呈“J型”爆炸式增长;但随着空间拥挤、代谢废物积累(即环境阻力增加),增长率会逐渐下降。
最终,种群数量会稳定在一个特定的最大值,这个值被称为环境容纳量(K值, Carrying Capacity)。
题目描述
我们使用离散的**逻辑斯谛映射(Logistic Map)**公式来模拟这一过程。假设观察的时间间隔为“代”(或者“年”)。
题目描述
第 代的种群数量 由第 代的数量 决定。公式如下:
- 首先计算理论增长量(浮点数):
- 计算下一代暂定数量(浮点数):
- 取整处理:
(即直接舍去小数部分,向下取整。例如
10.9变为10,99.1变为99)。
注意:如果计算结果小于 0,则归零(种群灭绝)。
请计算模拟 代后的种群数量。
输入格式
一行,包含四个数值,以空格分隔:
- 整数 :初始种群数量。
- 浮点数 :固有增长率。
- 整数 :环境容纳量。
- 整数 :模拟的代数。
输出格式
一个整数。表示 代后的种群数量。
样例数据
样例 1
10 0.5 1000 15
894
(解析:虽然每一步都扔掉了小数,但总体趋势依然是向K值逼近)
样例 2 (数值修正后的稳定测试)
1500 0.5 1000 10
1000
数据范围
- 数据保证中间计算过程在
long long范围内,且 不会变成负无穷。