我正在尝试使用 matlab 解决一个谜语。这实际上更多地是关于 matlab,而不是谜语本身(谜语来自日报)。
谜语给出了两个用字母表示的 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 范围内。
如果没有办法。怎样才能提高效率?