Использование тригонометрических функций в eclipse clp

Я новичок в затмении CLP и хочу реализовать предикат, который получает все углы, эквивалентные определенной синусоидальной функции, что-то вроде

:- lib(ic).
solve(L) :-
L = [X,Y,Z],
L::[-180..180],
cos(X) #= sin(Y) + sin(Z),
labeling(L).

Я знаю, что эта схема, вероятно, работает для целочисленных значений переменных; поэтому мне нужно альтернативное решение, которое также использует CLP.

2 ответа

Решение

Хорошо, я понял это,

:-lib(ic).
solve(V):-
V = [X,Y,Z],
V::[0 .. 180],
cos(X*pi/180) $= sin(Y*pi/180) + sin(Z*pi/180),
labeling(V).

Примечание: предикаты cos и sin работают с радианами

Аргументы тригонометрических функций приведены в радианах.

Используйте формулу Rad = Degree * pi / 180 преобразовать.

Другие вопросы по тегам