當前位置:編程學習大全網 - 編程軟體 - MATLAB題:將1-13這13個整數放在雪花的角點,要求每個四邊形之和都相等

MATLAB題:將1-13這13個整數放在雪花的角點,要求每個四邊形之和都相等

clc;

clear all;

%%

tic

a = 1:13;

A = [];sum1 = [];n = [];

num_t = size(a , 2) - 1;

%% 排列組合從13個元素中取出12個,中間的A13其實理論上不需要參加運算,只要得到A2-A12的數字就可以了

temp = combnk(a,num_t);

for k = 1:size(temp,1)

n = [n;perms(temp(k,:))];

end

A = n;

%% 挑選出我們需要的和和A1-A12的值

num = size (A);

sum1 = zeros (num(1) , num (2)/2);

for i = 1:num (1)

b = A (i,:);

for j = 1:2:num (2) - 1

if j == num (2) - 1

sum ((j + 1)/2) = b (j) + b (j+1) + b (1);

sum1(i,(j + 1)/2) = sum ((j + 1)/2);

else

sum ((j + 1)/2) = b (j) + b (j+1) + b (j+2);

sum1(i,(j + 1)/2) = sum ((j + 1)/2);

end

end

flag = 0;

num1 = size (sum);

for k = 1: num1(2) - 1

if sum (k) == sum (k+1)

flag = k + 1;

else

break;

end

end

if flag == num1(2)

fprintf ('第%d數組元素之和%d,%d,%d,%d,%d,%d相等,A2,A3,A4,...A10,A1值分別是%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n',i,sum,A (i,:))

end

end

toc

我個人的建議:

1、這個程序去比較牛叉的電腦運行,因為很容易出現內存不夠的情況,本人電腦最大運算的也只能計算1-11這種情況,經過測試是沒有錯誤的。但是1-13真的跑不動;

2、我這個程序計算的是A1-A12的情況,A13其實根本不參加運算,所以最後只要把它用剩下的數字代替就可以了;

3、如果有什麽問題,可以繼續解答。

  • 上一篇:我是學信息與計算科學專業的,數學和計算機方面都蠻好,感覺自己有所偏向數學方面,但數學不好就業,
  • 下一篇:兒童醫用螺紋管可以消毒嗎?
  • copyright 2024編程學習大全網