1
我正在嘗試解決一個使用matlab的謎題。 這是關於matlab的更多關於謎語本身的信息(謎語來自日報)。求解2個方程 - 9個未知數,帶約束。
謎語給出了由字母表示的兩個3位數字。我需要找到不參與的數字(0-9)。
aba-dcc = efe; aba + dcc = ghi
現在,我有2個等式和9個未知數。 我設法通過在while循環中檢查矢量0:9的所有排列來解決它。
vecAns = 0:9;
P = perms(vecAns);
P = P(:,1:9);
A = [ 101 10 -100 -11 -101 -10 0 0 0 ;...
101 10 100 11 0 0 -100 -10 -1];
resVec = [0;0];
found=false;
i=1;
h = waitbar(0,'Computing');
while found==false
Res=A*P(i,:)';
if (Res(1)==0)&&(Res(2)==0)
break;
end
i=i+1;
waitbar(i/length(P),h,sprintf('%d%%',i/length(P)*100));
end
close(h)
有沒有一種方法(無需添加數學考慮)來解決問題。例如,我知道所有未知數都必須是整數,範圍在0-9之間。
如果沒有辦法。如何使它更有效率?
這是很大的。爲了適應更一般的情況,我進行了一些改進,但僅使用4位數字的想法就是我所期待的。謝謝! –