gpt4 book ai didi

java - 等式 -e**-((-log(7)/100.0)*(100-x))+7 返回 NaN

转载 作者:太空狗 更新时间:2023-10-30 00:36:17 30 4
gpt4 key购买 nike

我正在尝试将这条曲线作为我目前正在开发的一款小游戏的升级系统的一部分。方程如下

f(x) = -e^-((-log(7)/100)*(100-x))+7

在python中可以定义为

f=lambda x:-e**-((-log(7)/100.0)*(100-x))+7

在 Python 控制台中运行此函数会返回预期的值。我将它移植到 Java,它采用以下形式:

public static double f(float x) {
return (Math.pow(-Math.E, -((-Math.log(7)/100)*(100-x)))+7);
}

然而,神秘的是,这总是返回 NaN。我以前从未遇到过这个问题,这是怎么回事?

最佳答案

(把我的评论作为答案)

表达方式不一样。在 Python 中,它看起来像 -(e**someNum)。在 Java 中,它看起来像 (-e)**someNum

想一想(以一种非常原始的方式),当您将一个负数乘以一些无理数次时,您会得到什么。这就是你得到 NaN 的原因。


你想要的 Java 是这样的:

public static double f(float x) {
return 7 - Math.pow(Math.E, -((-Math.log(7)/100)*(100-x)));
}

关于java - 等式 -e**-((-log(7)/100.0)*(100-x))+7 返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19829604/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com