作者ReiFu21 (ReiFu)
看板MATLAB
标题[讨论] 一个简单的量子能量相关的程式
时间Fri Jun 14 21:51:10 2013
三个正整数 m n k 从 1 1 1 开始
1^2+1^2+1^2=3 一种变化 即1 1 1
2^2+1^2+1^2=6 三种变化 即2 1 1 , 1 2 1 , 1 1 2
2^2+2^2+1^2=9 三种变化 即2 2 1 , 2 1 2 , 1 2 2
3^2+1^2+1^2=11 三种变化 即3 1 1 , 1 3 1 , 3 1 1
2^2+2^2+2^2=12 一种变化 即2 2 2
3^2+2^2+1^2=14 六种变化 即3 2 1 , 3 1 2 , 2 1 3 , 2 3 1 , 1 2 3 , 1 3 2
我希望求出矩阵d
d= 3 1
6 3
9 3
11 3
12 1
14 6
以下是我写的错误逻辑的程式 求出来的d的第一行跳过11
clc
clear all
d=[3];
x=[1 1 1];
for i=1:20
m=(x(1)+1)^2+x(2)^2+x(3)^2;
n=(x(2)+1)^2+x(1)^2+x(3)^2;
k=(x(3)+1)^2+x(1)^2+x(2)^2;
d=[d;min([m,n,k])];
if min([m,n,k])==m
x(1)=x(1)+1;
elseif min([m,n,k])==n
x(2)=x(2)+1;
elseif min([m,n,k])==k
x(3)=x(3)+1;
end
end
d
想请问各位乡民该如何修改 感谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 182.233.195.125
※ 编辑: ReiFu21 来自: 182.233.195.125 (06/14 21:55)
1F:→ mp19990920:3 2 2/3 3 3/2 2 3/2 3 3 这些要吗? 06/15 02:32
2F:→ mp19990920:漏了一个 3 3 2 06/15 02:33
3F:→ ReiFu21:不用 只是平方值一样大的都要加在一起 所以不只有1 3 6 06/15 10:39
4F:→ mp19990920:.... 06/15 11:15
5F:→ mp19990920:3 2 2, 2 3 2, 2 2 3/3 3 3/2 3 3, 3 2 3, 3 3 2 ... 06/15 11:16
6F:→ mp19990920:更正如上所示 06/15 11:17
7F:→ ReiFu21:希望可以算到指定的大小 像是3*(100^2)这麽大 但是细节诸 06/15 11:28
8F:→ ReiFu21:如把所有排列可能都列出来就不用了 感谢 06/15 11:29
9F:推 CBET:或是用暴力法把所有平方和算出来,再用unique并计算出现次数 06/15 13:40