黄金比例精确计算



我的任务是计算黄金比例(phi=(1+sqrt(5((/2(。但我需要用大约50个小数位/小数位来计算,然后将结果四舍五入到30个小数位,并将其打印在控制台上。我被允许使用BigDecimal和MathContext。有人知道怎么计算吗?我现在迷路了。感谢

我不会帮你解决问题!然而,我认为给你一个有希望的方向是看看API:https://docs.oracle.com/javase/9/docs/api/java/math/BigDecimal.html特别是在构造函数处:BigDecimal(BigInteger unscaledVal, int scale, MathContext mc)我相信,如果你用这些物体进行实验,你就能达到你的目标。注意:sqrt仅在Java 9中添加到BigDecimal中。

祝你好运。

我在网上找到了这个。它可以用来验证您的计算。

String goldenRatio = 
"1.61803398874989484820458683436563811772030917980576286213544862270526046281890" +
"244970720720418939113748475408807538689175212663386222353693179318006076672635";

您可以通过验证常规计算的正确性

  • 验证长度(不要忘记小数点和整数位数(
  • 验证它是否与所提供答案的某个初始部分匹配

为了正常计算,我使用精度为30RoundingMode.HALF_UPMathContext

这可能不符合你的预期。如果你遇到问题,这里的人会帮助你。

不过,我强烈建议你在寻求任何额外帮助之前先尝试一下。

最新更新