【问题标题】:java negative double to the power of a pos/neg doublejava 负双倍的正/负双倍的幂
【发布时间】:2017-08-12 22:51:45
【问题描述】:

我正在尝试使用指数来计算 z 坐标在屏幕上与对象的基本 z 坐标之间的距离,因为对象越远,对象移开的速度越慢,反之亦然越来越近了,它加速了。但是这样做所涉及的计算需要一个负双基数来加倍幂,这可能是负数,也可能不是负数

Math.pow(-1.1, -(z-25))+10.8347

如果我每 1.5 使用 -10 到 20 之间的数字,它会给出这些答案

-10.0 = -17.26773684806433
-8.5 = NaN
-7.0 = 31.948476745352608
-5.5 = NaN
-4.0 = -5.028392971714952
-2.5 = NaN
-1.0 = 22.752876537727232
0.5 = NaN
2.0 = 1.8803975674476092
3.5 = NaN
5.0 = 17.56219994932561
6.5 = NaN
8.0 = 5.780229715007055
9.5 = NaN
11.0 = 14.632198335832413
12.5 = NaN
14.0 = 7.981583293889997
15.5 = NaN
17.0 = 12.978288810000002
18.5 = NaN
20.0 = 9.22419

当使用desmos时,我应该得到一个很好的慢指数,每个人都有答案。但这里的计算只能工作输入是一个偶数整数,小数给出NaN,奇数似乎在做自己的事情,所以这里唯一正确的数字是-10、-4、2、8、14、20,把这些答案到 excel 中,他们的答案显示指数,但我需要这个方程来处理几乎所有的数字。

【问题讨论】:

  • read the javadocs for Math.pow了吗? “如果第一个参数是有限的并且小于零……[并且]如果第二个参数是有限的而不是整数,那么结果是 NaN。”
  • 那么有没有一种方法可以让我从其他地方获取我的计算?
  • 双打,没有。例如,Pow.math(x, 1.5)Pow.math(x, 3./2.)。这意味着 x 的平方根,立方。如果 x 是负数,它的平方根是一个虚数——双精度数不能表达这些。
  • 喜欢使用来自 desmos 等网站的答案

标签: java 3d double exponential negative-number


【解决方案1】:

一个应该给出距离的公式应该对所有适用的输入都有一个真实的而不是虚构的结果。

将负数乘以分数幂得到imaginary number 结果。 Java double 是实数的近似值。只要结果是虚数,Java Math 函数就会返回 NaN。

将负数提高到偶数次方会得到正结果。将负数提高到奇整数次方会得到负数。

您更喜欢z 的偶数整数值的结果,对应于z-25 的奇数整数值。表现更好的公式 -Math.pow(1.1, -(z - 25)) + 10.8347 与这些输入相匹配,但您需要重新考虑公式背后的理论。

-10.0 : -17.26773684806433
-8.5 : -13.524047455696502
-7.0 : -10.279076745352606
-5.5 : -7.466387494888428
-4.0 : -5.028392971714952
-2.5 : -2.91517790750445
-1.0 : -1.0834765377272344
0.5 : 0.5042132175022935
2.0 : 1.8803975674476092
3.5 : 3.0732523797913576
5.0 : 4.107200050674389
6.5 : 5.00340952651492
8.0 : 5.780229715007055
9.5 : 6.453565158914292
11.0 : 7.037201664167585
12.5 : 7.543088549146725
14.0 : 7.981583293889997
15.5 : 8.36166359815682
17.0 : 8.691111189999997
18.5 : 8.976671148126837
20.0 : 9.22419

【讨论】:

    【解决方案2】:

    我是通过改变负数来解决的

    Math.pow(-1.1, -(z-25))+10.8347
    

    -(Math.pow(1.1, -(z-25))-10.8347)
    

    不知何故,它让所有答案都起作用了

    【讨论】:

    • 我同意更改后的公式与您喜欢的值相匹配,但您是否理解为什么它在导致您得到原始公式的理论方面是正确的?否则,您可能会在其他情况下遇到问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 2019-11-08
    • 2013-03-30
    • 2014-02-28
    • 1970-01-01
    • 2020-10-11
    相关资源
    最近更新 更多