在 Prolog 中编写数学函数
Writing a math function in Prolog
我需要在 Prolog 中编写一个函数,但我不明白如何 return R 的值并将其放入最终函数中。我知道 Prolog 没有 return 值,但我还是想不通。
这是我现在拥有的:
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.
就像:
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
对 X、Z 和 Y 成立,如果 countR
对 X、Z、R 成立且 X 大于 R 且 Y 为 1-X^R"
其他情况也采用相同的模式。
我需要在 Prolog 中编写一个函数,但我不明白如何 return R 的值并将其放入最终函数中。我知道 Prolog 没有 return 值,但我还是想不通。
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.
就像:
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
对 X、Z 和 Y 成立,如果 countR
对 X、Z、R 成立且 X 大于 R 且 Y 为 1-X^R"
其他情况也采用相同的模式。