理想条件下计算愚公移山需要多久
理想条件下计算愚公移山需要多少时间。
太行山看成是一个底面是椭圆的椎体,长半轴a=400,000米,短半轴b=3000米,海拔3000米。
太行山距离渤海200,000米,每个人每天移动15kg(一个星期两个人用辆车移动210kg,去4天,回来3天)。
假设愚公有3个儿子,每个儿子都娶媳妇了,三十年算一代,每一代都生2个儿子。每一代活80岁,60岁退休。
每一代当中,一半的人负责从事生产活动,一半的人负责搬山。
package test.algorithmQuestion;import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;/*** @author *cruder* @version 1.0* @since 2021/1/30 17:07*/
public class Algorithm01 {private static final int A = 400_000;private static final int B = 3000;private static final int H = 3000;private static final double RHO = 2.30;private static final int GEN_NUM = 2;private static final int WOOK = 15;public static void main(String[] args) {double s = Math.PI*A*B;double v = s*H/3;double m = RHO*v;List<GenInfo> genInfoList = new ArrayList<>();genInfoList.add(new GenInfo(1,3));int days =0;int gen = 1;while(m>0){days++;int sum = genInfoList.stream().mapToInt(GenInfo::getNum).sum(); //搬山人数m -= sum*WOOK;if(days%(365*30)==0){System.out.println("第"+days+"天\t"+gen+"代\t搬山人数:"+sum+"\t\t\t山的质量:"+m);gen++;for (int i = 0; i < genInfoList.size(); i++) {if(genInfoList.get(i).getGen()==3){//第三代退休genInfoList.remove(i);}}genInfoList.stream().map(GenInfo::addGen).collect(Collectors.toList());genInfoList.add(new GenInfo(1,genInfoList.get(genInfoList.size()-1).getNum()*GEN_NUM));}System.out.println("第"+days+"天\t"+gen+"代\t搬山人数:"+sum+"\t\t\t山的质量:"+m);}}}class GenInfo{private int gen;private int num;public GenInfo(int gen, int num) {this.gen = gen;this.num = num;}public int addGen(){return this.gen++;}public int getGen() {return gen;}public void setGen(int gen) {this.gen = gen;}public int getNum() {return num;}public void setNum(int num) {this.num = num;}
}
计算结果:
第10950天 1代 搬山人数:3 山的质量:8.670795231157829E12
第21900天 2代 搬山人数:9 山的质量:8.670793752907829E12
第32850天 3代 搬山人数:21 山的质量:8.670790303657829E12
第43800天 4代 搬山人数:42 山的质量:8.670783405157829E12
第54750天 5代 搬山人数:84 山的质量:8.670769608157829E12
第65700天 6代 搬山人数:168 山的质量:8.670742014157829E12
第76650天 7代 搬山人数:336 山的质量:8.670686826157829E12
第87600天 8代 搬山人数:672 山的质量:8.670576450157829E12
第98550天 9代 搬山人数:1344 山的质量:8.670355698157829E12
第109500天 10代 搬山人数:2688 山的质量:8.669914194157829E12
第120450天 11代 搬山人数:5376 山的质量:8.669031186157829E12
第131400天 12代 搬山人数:10752 山的质量:8.667265170157829E12
第142350天 13代 搬山人数:21504 山的质量:8.663733138157829E12
第153300天 14代 搬山人数:43008 山的质量:8.656669074157829E12
第164250天 15代 搬山人数:86016 山的质量:8.642540946157829E12
第175200天 16代 搬山人数:172032 山的质量:8.614284690157829E12
第186150天 17代 搬山人数:344064 山的质量:8.557772178157829E12
第197100天 18代 搬山人数:688128 山的质量:8.444747154157829E12
第208050天 19代 搬山人数:1376256 山的质量:8.218697106157829E12
第219000天 20代 搬山人数:2752512 山的质量:7.766597010157829E12
第229950天 21代 搬山人数:5505024 山的质量:6.862396818157829E12
第240900天 22代 搬山人数:11010048 山的质量:5.053996434157829E12
第251850天 23代 搬山人数:22020096 山的质量:1.437195666157829E12
............
第254023天 24代 搬山人数:44040192 山的质量:1.7056079178291016E9
第254024天 24代 搬山人数:44040192 山的质量:1.0450050378291016E9
第254025天 24代 搬山人数:44040192 山的质量:3.8440215782910156E8
第254026天 24代 搬山人数:44040192 山的质量:-2.7620072217089844E8
可以看出,第二十三代人以后才开始太行山才开始出现动摇,四千多万子孙奋战了2000多天,七年的时间才把山移完。
理想条件下计算愚公移山需要多久相关推荐
- 下一个交易日是多久?一个交易日是多长时间
进行投资理财时,不可避免地会遇到交易日这个概念,例如下一个交易日确认.下一个交易日到账等等.不过有很多人对于下一个交易日是多久,以及交易日的计算规则并不了解,接下来就和希财君一起来了解一下一个交易日是 ...
- R语言使用pwr包的pwr.t.test函数对分组样本数相同的t检验进行效用分析(power analysis)、在已知效应量(effect size)、显著性水平、效用值的情况下计算需要的样本量
R语言使用pwr包的pwr.t.test函数对分组样本数相同的t检验进行效用分析(power analysis).在已知效应量(effect size).显著性水平(sig).效用值(power)的情 ...
- R语言使用pwr包的pwr.t.test函数对分组样本数相同的t检验进行效用分析(power analysis)、在已知效应量(effect size)、显著性水平、样本量的情况下计算假设检验的效用值
R语言使用pwr包的pwr.t.test函数对分组样本数相同的t检验进行效用分析(power analysis).在已知效应量(effect size).显著性水平(sig).样本量(sample s ...
- R语言使用pwr包的pwr.chisq.test函数对卡方检验进行效用分析(power analysis)、在已知效应量(effect size)、显著性水平、效用值的情况下计算需要的样本量
R语言使用pwr包的pwr.chisq.test函数对卡方检验(Chi-square tests)进行效用分析(power analysis).在已知效应量(effect size).显著性水平(si ...
- R语言使用pwr包的pwr.r.test函数对相关信息分析进行效用分析(power analysis)、在已知效应量(effect size)、显著性水平、效用值的情况下计算需要的样本量
R语言使用pwr包的pwr.r.test函数对相关信息分析(Correlations)进行效用分析(power analysis).在已知效应量(effect size).显著性水平(sig).效用值 ...
- R语言使用pwr包的pwr.f2.test函数对线性回归模型进行效用分析(power analysis)、在已知效应量(effect size)、显著性水平、效用值的情况下计算需要的样本量
R语言使用pwr包的pwr.f2.test函数对线性回归模型(Linear models)进行效用分析(power analysis).在已知效应量(effect size).显著性水平(sig).效 ...
- UA MATH575B 数值分析下 计算统计物理例题2
UA MATH575B 数值分析下 计算统计物理例题2 理论解法 C-K方程法 特征值法(近似解) 模拟解法 Rejection Sampling Importance Sampling 一个位于原点 ...
- UA MATH575B 数值分析下 计算统计物理例题1
UA MATH575B 数值分析下 计算统计物理例题1 统计物理方法的解析解 Markov链 理论解 数值解 Monte Carlo模拟. 一道有趣的统计物理的题目.下面这个简单的迷宫中,一只老鼠一开 ...
- 乌镇现场·帅初:公有链的未来——链上校验,链下计算
乌镇现场·帅初:公有链的未来--链上校验,链下计算 6月29日,"世界区块链大会•乌镇"盛大开幕,本次峰会由国内资深的区块链门户媒体巴比特主办,全球多家行业知名机构协办.大会邀请到 ...
- PS图像菜单下计算命令
PS图像菜单下计算命令通过通道的混合模式得到的选区非常精细,从而调色的时候过度非常好.功能十分强大. 下面用计算命令中的"相加"和"减去"模式做实例解析,这 ...
最新文章
- 嵌入式linux alsa,嵌入式Linux下ALSA音频架构ALSA-lib移植与编译心得
- 在JavaScript中重复字符串的三种方法
- python or的用法_python中and和or的用法
- Error: No controllers detected :问题解决
- 配置Linux—LVS (DR)
- 《Python Cookbook 3rd》笔记(5.9):读取二进制数据到可变缓冲区中
- Centos 下PHP编译安装fileinfo扩展
- Rust LeetCode 练习:929 Unique Email Addresses
- 2.2 理解 mini-batch 梯度下降法
- 测试思路系列:《谷歌的软件测试之道》读书笔记
- 关于VS2005安装项目制作的三个参考文章链接
- javaweb入门笔记(5)-cookie和session
- linux中id命令的功能,Linux id命令参数及用法详解
- poj1005——I Think I Need a Houseboat
- 【自用】Android 双击返回键退出
- Python基本图形绘制:turtle库
- junit5 入门系列教程-14-junit5 重复测试(@RepeatedTest)
- redis读缓存超时故障处理
- 独家| 阿里腾讯大裁员!一鲸落,万物生,一切才刚刚开始
- SNIFFER(嗅探器)基础知识