2017-08-02 30 views
1

我的學生給我的形式回答:如何求解由「和」分開的極大值方程組?

x=4 and y=3

現在我想找出X和Y的最大值,並提出反饋意見。例如,「x是正確的,但是y不正確」。我知道,如果學生給出的答案爲列表,我可以這樣做:

solve([x=4, y=3], [x,y])

有沒有一種辦法可以在本and表達式轉換到一個列表,或者使最大值找出什麼對我xy是直接?

+0

你想要哪種語言來解決它,特別你是治療的答案字符串?如果它是字符串,你可以使用正則表達式 –

+0

@RajanChauhan我的意思是特別是最大的語言(計算機代數系統)。 – Kasper

回答

0

如果輸入表達式是一個字符串,則可以使用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]] 
0

我假設你可以通過parse_string或一些其它方式獲得來自輸入一個最大值表達。

e表達。然後subst("and"="[", e)返回具有運算符"["(即列表)而不是"and"的表達式。

0

另一種方法是使用split

str:"x=4 and y=3"; 
spl:split(str,"and"); 
>>> ["x=4 "," y=3"] 
eq:map(parse_string,spl); 
>>> [x=4,y=3]