是否有一个库可以找到BigInteger的平方根?我希望它离线计算 - 只有一次,而不是在任何循环内.所以即使是计算成本高昂的解决方案也没关系
我不想找到一些算法和实现.一个现成的解决方案将是完美的.
我是BigDecimal的新手.
我尝试使用Java代码进行一些数学计算.当我使用Google计算器尝试相同的计算时,它会给我一个稍微不同的结果.哪一个最准确?如果谷歌计算器更准确,那么如何改进java代码来匹配呢?
在Google计算器上:
134.23576185216913 - (134.23576185216913×√(1 - (200000000 ^ 2÷299800000 ^ 2)))= 34.2357618522
在Java上:
BigDecimal t1 = new BigDecimal(134.23576185216913);
BigDecimal one = new BigDecimal(1);
BigDecimal speed = new BigDecimal(200000000).pow(2);
BigDecimal lightsSpeed = new BigDecimal(299800000).pow(2);
MathContext mc = new MathContext(2, RoundingMode.HALF_UP);
System.out.println(t1.subtract((t1.multiply(SquareRoot.bigSqrt(one.subtract(speed.divide(lightsSpeed,mc)))))));
Run Code Online (Sandbox Code Playgroud)
bigSqrt的方法就是从这里开始的
结果是:
运行:
34.683856455950090090043113321827989040137639817587194953722595479211000578082422197809603912048352550091209304856567024386365147605287692511973841869226169664820176852861655846233912503305984796190828666994508412096618025960010635831985100961879858807909056676663493607611105279976694118991120829708264297254294821755138400476425886154174804687500
生成成功(总时间:0秒)