在Prolog中写数学功能

发布于 2025-01-19 03:09:32 字数 453 浏览 0 评论 0原文

我需要在Prolog中写一个功能,但是我不明白如何返回R的值并将其放入最终功能中。我得到prolog不返回值,但我仍然无法弄清楚。

“这是一个函数”这就是我现在拥有的:

run:- write('Input X, Z:'), nl,
    read(X), number(X),
    read(Z), number(Z),
    func(X,Y),
    write('Y='), write(Y), nl.
countR(X,Z,R):- X^2>=Z, R is Z*X.
countR(X,Z,R):- X^2<Z, R is Z*e^-X.
func(X,Y):- X>R, Y is 1-X^R.
func(X,Y):- X=<R, Y is 1-X^-R.

I need to write a function in Prolog, but I don't understand how to return the value of R and put it in the final function. I get that Prolog doesn't return values, but I still can't figure it out.

This is a functionThis is what I have now:

run:- write('Input X, Z:'), nl,
    read(X), number(X),
    read(Z), number(Z),
    func(X,Y),
    write('Y='), write(Y), nl.
countR(X,Z,R):- X^2>=Z, R is Z*X.
countR(X,Z,R):- X^2<Z, R is Z*e^-X.
func(X,Y):- X>R, Y is 1-X^R.
func(X,Y):- X=<R, Y is 1-X^-R.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

牛↙奶布丁 2025-01-26 03:09:33

类似于:

run:- write('Input X, Z:'), nl,
    read(X), number(X),
    read(Z), number(Z),
    func(X,Z,Y),
    write('Y='), write(Y), nl.

countR(X,Z,R) :-
    Xsq is X^2,
    Xsq >= Z,
    R is Z*X.

func(X,Z,Y) :- 
    countR(X, Z, R),
    X > R,
    Y is 1-X^R.

“如果 countR 对于 X、Z、R 成立且 X 大于 R 并且 Y 为 1-X^,则 func 对于 X、Z 和 Y 成立R”

,其他情况也有相同的模式。

It would be like:

run:- write('Input X, Z:'), nl,
    read(X), number(X),
    read(Z), number(Z),
    func(X,Z,Y),
    write('Y='), write(Y), nl.

countR(X,Z,R) :-
    Xsq is X^2,
    Xsq >= Z,
    R is Z*X.

func(X,Z,Y) :- 
    countR(X, Z, R),
    X > R,
    Y is 1-X^R.

"func holds for X, Z and Y if countR holds for X, Z, R and X is greater than R and Y is 1-X^R"

and same pattern for the other cases.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文