1

matlabを使ってなぞなぞを解こうとしています。これは、なぞなぞそのものよりも、matlab に関するものです (なぞなぞは、日刊紙から取られています)。

なぞなぞは、文字で表された 2 つの 3 桁の数字を出します。参加していない数字 (0-9) を見つける必要があります。

aba-dcc=efe; aba+dcc=ghi

今、私は9つの未知数を持つ2つの方程式を持っています. 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

1 に答える 1