我的學生給我的形式回答:如何求解由「和」分開的極大值方程組?
x=4 and y=3
現在我想找出X和Y的最大值,並提出反饋意見。例如,「x是正確的,但是y不正確」。我知道,如果學生給出的答案爲列表,我可以這樣做:
solve([x=4, y=3], [x,y])
有沒有一種辦法可以在本and
表達式轉換到一個列表,或者使最大值找出什麼對我x
和y
是直接?
我的學生給我的形式回答:如何求解由「和」分開的極大值方程組?
x=4 and y=3
現在我想找出X和Y的最大值,並提出反饋意見。例如,「x是正確的,但是y不正確」。我知道,如果學生給出的答案爲列表,我可以這樣做:
solve([x=4, y=3], [x,y])
有沒有一種辦法可以在本and
表達式轉換到一個列表,或者使最大值找出什麼對我x
和y
是直接?
如果輸入表達式是一個字符串,則可以使用parse_string
:
a: "x=3 and y = 4"$
inpart(parse_string(a),1);
(%o1) x = 3
exp: map(lambda([i],inpart(parse_string(a),i)), [1,2]);
(%o2) [x = 3, y = 4]
solve(exp, [x,y]);
(%o3) [[x = 3, y = 4]]
我假設你可以通過parse_string
或一些其它方式獲得來自輸入一個最大值表達。
讓e
表達。然後subst("and"="[", e)
返回具有運算符"["
(即列表)而不是"and"
的表達式。
另一種方法是使用split
:
str:"x=4 and y=3";
spl:split(str,"and");
>>> ["x=4 "," y=3"]
eq:map(parse_string,spl);
>>> [x=4,y=3]
你想要哪種語言來解決它,特別你是治療的答案字符串?如果它是字符串,你可以使用正則表達式 –
@RajanChauhan我的意思是特別是最大的語言(計算機代數系統)。 – Kasper