求一个比较大小的JAVA算法

2023-03-12 17:07

2023-03-12 20:56
1.是的
2.a-可以直接求和,b-利用近似公式
3.近似公式为e=(1+1/n)^n,n->无穷大
4.这两个公式都需要运算n到足够大来减少误差
假如你运算到n=k满足精度需要了
那么你首先要保证当n=k-1时算出的值与n=k的值差别小于0.0001
假如需要考虑截断误差,那么你就要考虑到任何一个1/n或者1/n!的形式的截断误差,以及运算中每一步的累计误差,都是可以计算的
从累积误差的角度来说,第一个方法较优
因为每一个求和项目都是整数的倒数,只发生一次截断
之后的误差计算直接将最大误差可能求和就可以了
而且每一次迭代可以应用上一次的结果,效率较高
但是缺点是当n比较大的时候,n!也会是一个比较大的数,n的类型定义得不好会溢出
第二个方法就需要计算一次截断误差,并且计算n次方的误差累积
更多回答
创建一个数组,然后使用数组的排序功能,输出前3个不就行了
方法:toArray()