1

私は多角形の数について取り組んでいて、3 つの 27 角形の和として表現できる数のリストを作成していました。私は Matlab コードを実行しましたが、本当に遅いです。それを改善するために私を助けてもらえますか?

    n=0:100;             % number of polygonals
    pn=(25*n.^2-23*n)/2; % vector of 27-gonal numbers
    s=1;
    % the following part generate the list of numbers represented as a sum of three 27-    gonals
    for n=1:101
        for m=1:101
            for l=1:101
                sumadetres(s)=pn(n)+pn(m)+pn(l);
                s=s+1;
            end
        end
    end   
    k=1;

    % some of the numbers are repeted, so the following part eliminated the repeated ones.
    n=length(sumadetres);

    while k<=n   
        j=1;
        while j<=n
            if k~=j
                if sumadetres(k)==sumadetres(j)
                    sumadetres(j)=[];
                    n=length(sumadetres);
                end
            end
            j=j+1;
         end
        k=k+1;
    end

    sumadetres=sort(sumadetres); % organise the numbers

ありがとう

4

1 に答える 1