gpt4 book ai didi

Prolog Functor - 计算 x^y

转载 作者:行者123 更新时间:2023-12-02 05:06:21 26 4
gpt4 key购买 nike

我是序言新手,正在尝试学习如何编程。我想知道如何在 Prolog 中计算 x^y ,两者都是整数。

我知道事实是这样的:

% exp(y,x,z) <- z is x**y

最佳答案

试试这个:

?- [user].
exp(X,Y,Z) :- Z is round(X**Y).

Yes
?- exp(3,4,R).
R = 81

与您的解决方案的差异:

1) Prolog 中通常使用 (:-)/2 运算符来定义规则,而不是 (->)/2 运算符。

2) (* * )/2 产生 float 。有几种将 float 转换为的可能性一个整数。除了 Floor/1 和 truncate/1 之外,round/1 函数可能效果最好这里发现 (**)/2 的结果可能不精确。

再见

P.S.:有一个关于原生整数幂函数的提案,它将使用运算符(^)/2。欲了解更多信息,请参阅:

http://www.complang.tuwien.ac.at/ulrich/iso-prolog/dtc2#pow

native 幂函数可能会产生更好的结果,而上述实现可能会遇到溢出或不精确的结果。以下是具有不同结果的示例(SWI Prolog 5.11.33):

?- X 是圆形(123.0**45.0)。
X = 11110408185131957010659080963921001637101840276079092263812695592440203675146350059871151325184。

?- X 是 123^45。
X = 11110408185131956285910790587176451918559153212268021823629073199866111001242743283966127048043。

关于Prolog Functor - 计算 x^y,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8669947/

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