gpt4 book ai didi

Java EXP4J : Correct precedence of factorials?

转载 作者:行者123 更新时间:2023-12-01 10:22:18 27 4
gpt4 key购买 nike

我正在使用文档的股票阶乘运算符,如下所示:

factorial = new Operator("!", 1, true, Operator.PRECEDENCE_POWER + 1) {
@Override public double apply(double... args) {
final long arg = (long) args[0];
if ((double) arg != args[0]) {
throw new IllegalArgumentException("Operand for factorial has to be an " + "integer");
}
if (arg < 0) {
throw new IllegalArgumentException("The operand of the factorial can not " +
"be " +
"less than zero");
}
double result = 1;
for (int i = 1; i <= arg; i++) {
result *= i;
}
return result;
}
};

它按照正则表达式的预期工作,但是当我有一个像这样的表达式时5^(2)! 当预期答案为 1.55e25 时,它会返回 25。它以2作为参数,而不是幂的最终答案。

我尝试弄乱优先级,但似乎没有什么区别。

有什么想法吗?

最佳答案

对我来说似乎是正确的。 5^2!应该是 25,也应该是 5^(2)!

Google 确认了这两点。

也许你的意思是(5^2)!反而?这应该可以解决问题。

我不知道在单个数字周围放置括号会改变操作顺序的情况。

关于Java EXP4J : Correct precedence of factorials?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35504975/

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