理想条件下计算愚公移山需要多少时间。

太行山看成是一个底面是椭圆的椎体,长半轴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多天,七年的时间才把山移完。

理想条件下计算愚公移山需要多久相关推荐

  1. 下一个交易日是多久?一个交易日是多长时间

    进行投资理财时,不可避免地会遇到交易日这个概念,例如下一个交易日确认.下一个交易日到账等等.不过有很多人对于下一个交易日是多久,以及交易日的计算规则并不了解,接下来就和希财君一起来了解一下一个交易日是 ...

  2. R语言使用pwr包的pwr.t.test函数对分组样本数相同的t检验进行效用分析(power analysis)、在已知效应量(effect size)、显著性水平、效用值的情况下计算需要的样本量

    R语言使用pwr包的pwr.t.test函数对分组样本数相同的t检验进行效用分析(power analysis).在已知效应量(effect size).显著性水平(sig).效用值(power)的情 ...

  3. R语言使用pwr包的pwr.t.test函数对分组样本数相同的t检验进行效用分析(power analysis)、在已知效应量(effect size)、显著性水平、样本量的情况下计算假设检验的效用值

    R语言使用pwr包的pwr.t.test函数对分组样本数相同的t检验进行效用分析(power analysis).在已知效应量(effect size).显著性水平(sig).样本量(sample s ...

  4. R语言使用pwr包的pwr.chisq.test函数对卡方检验进行效用分析(power analysis)、在已知效应量(effect size)、显著性水平、效用值的情况下计算需要的样本量

    R语言使用pwr包的pwr.chisq.test函数对卡方检验(Chi-square tests)进行效用分析(power analysis).在已知效应量(effect size).显著性水平(si ...

  5. R语言使用pwr包的pwr.r.test函数对相关信息分析进行效用分析(power analysis)、在已知效应量(effect size)、显著性水平、效用值的情况下计算需要的样本量

    R语言使用pwr包的pwr.r.test函数对相关信息分析(Correlations)进行效用分析(power analysis).在已知效应量(effect size).显著性水平(sig).效用值 ...

  6. R语言使用pwr包的pwr.f2.test函数对线性回归模型进行效用分析(power analysis)、在已知效应量(effect size)、显著性水平、效用值的情况下计算需要的样本量

    R语言使用pwr包的pwr.f2.test函数对线性回归模型(Linear models)进行效用分析(power analysis).在已知效应量(effect size).显著性水平(sig).效 ...

  7. UA MATH575B 数值分析下 计算统计物理例题2

    UA MATH575B 数值分析下 计算统计物理例题2 理论解法 C-K方程法 特征值法(近似解) 模拟解法 Rejection Sampling Importance Sampling 一个位于原点 ...

  8. UA MATH575B 数值分析下 计算统计物理例题1

    UA MATH575B 数值分析下 计算统计物理例题1 统计物理方法的解析解 Markov链 理论解 数值解 Monte Carlo模拟. 一道有趣的统计物理的题目.下面这个简单的迷宫中,一只老鼠一开 ...

  9. 乌镇现场·帅初:公有链的未来——链上校验,链下计算

    乌镇现场·帅初:公有链的未来--链上校验,链下计算 6月29日,"世界区块链大会•乌镇"盛大开幕,本次峰会由国内资深的区块链门户媒体巴比特主办,全球多家行业知名机构协办.大会邀请到 ...

  10. PS图像菜单下计算命令

    PS图像菜单下计算命令通过通道的混合模式得到的选区非常精细,从而调色的时候过度非常好.功能十分强大.   下面用计算命令中的"相加"和"减去"模式做实例解析,这 ...

最新文章

  1. 嵌入式linux alsa,嵌入式Linux下ALSA音频架构ALSA-lib移植与编译心得
  2. 在JavaScript中重复字符串的三种方法
  3. python or的用法_python中and和or的用法
  4. Error: No controllers detected :问题解决
  5. 配置Linux—LVS (DR)
  6. 《Python Cookbook 3rd》笔记(5.9):读取二进制数据到可变缓冲区中
  7. Centos 下PHP编译安装fileinfo扩展
  8. Rust LeetCode 练习:929 Unique Email Addresses
  9. 2.2 理解 mini-batch 梯度下降法
  10. 测试思路系列:《谷歌的软件测试之道》读书笔记
  11. 关于VS2005安装项目制作的三个参考文章链接
  12. javaweb入门笔记(5)-cookie和session
  13. linux中id命令的功能,Linux id命令参数及用法详解
  14. poj1005——I Think I Need a Houseboat
  15. 【自用】Android 双击返回键退出
  16. Python基本图形绘制:turtle库
  17. junit5 入门系列教程-14-junit5 重复测试(@RepeatedTest)
  18. redis读缓存超时故障处理
  19. 独家| 阿里腾讯大裁员!一鲸落,万物生,一切才刚刚开始
  20. SNIFFER(嗅探器)基础知识

热门文章

  1. 服务容错保护Hystrix
  2. Android-LayoutParams的那些事
  3. 陈彬 2019-1-17
  4. 手机APP应用怎样从公网访问局域网WEB应用
  5. SDN第一次上机作业
  6. 负载均衡常见问题之会话保持-粘滞会话(Sticky Sessions)
  7. TYVJ P1022 进制转换 Label:坑
  8. MVC去掉传参时的验证:从客户端中检测到有潜在危险的Request.QueryString值
  9. javascript对行单击事件处理(委托事件)
  10. Linux下gcc与g++用法以及编写makefile