有序的整数划分,青蛙跳台阶问题 MATLAB
来源:互联网 发布:手机sdr软件 编辑:程序博客网 时间:2024/06/05 15:02
网上搜到的整数划分问题不考虑排序,例如认为3 1 与1 3是一样的。
考虑排序的整数划分问题为跳台阶问题,但网上搜到的跳台阶问题没有输出排列结果,自己编写的matlab程序如下:
function hua_fenn=input('请输入一个数:\n');global A B;num=count(n,n);A=zeros(num,n);B=zeros(n,1);m=1;global len1 len2;len1=1;len2=1;shu_chu(n,m);C=zeros(2^(n-1),n);% 划分结果在矩阵C里面mark=1;for k=1:num temp=pai_lie(nonzeros(A(k,:))'); [lgh,wth]=size(temp); C(mark:mark+lgh-1,1:wth)=temp; mark=mark+lgh;endendfunction num=count(n,m) if n==1||m==1 num=1; else if n<m num=count(n,n); end if n==m num=1+count(n,m-1); end if n>m num=count(n,m-1)+count(n-m,m); end endendfunction shu_chu(n,m)global len1 len2 A B;if n==0 fprintf('%d',B(1)) A(len2,1)=B(1); for i=2:1:m-1 fprintf('+'); fprintf('%d',B(i)); end if m>len1 fprintf('\n'); len1=len1+1; len2=len2+1; else fprintf(', '); len2=len2+1; end return;endfor i=n:-1:1 if m==1||i<=B(m-1) B(m)=i;A(len2,m)=i; shu_chu(n-i,m+1); endendendfunction B=pai_lie(A) d=length(A); B(1,:)=A'; index=2; for i=1:d-1 for j=i+1:d if A(j)~=A(i) B(index,:)=[A(1:i-1),A(j),A(i+1:j-1),A(i),A(j+1:d)]; index=index+1; end end endend
0 0
- 有序的整数划分,青蛙跳台阶问题 MATLAB
- 青蛙跳台阶的问题
- 青蛙跳台阶的问题
- 青蛙跳台阶的问题
- 整数划分和跳台阶问题
- 青蛙跳台阶问题
- 青蛙跳台阶问题
- 青蛙跳台阶问题
- 青蛙跳台阶问题
- 青蛙跳台阶问题
- 青蛙跳台阶问题
- 青蛙跳台阶问题
- 青蛙跳台阶问题
- 青蛙跳台阶问题
- 青蛙跳台阶问题
- 青蛙跳台阶问题
- 青蛙跳台阶问题
- 青蛙跳台阶问题
- iOS开发-正则表达式
- 多按键监听事件
- 玩转lua:搞懂lua潜规则
- Error与Exception的联系与区别
- Verticle in Vert.x
- 有序的整数划分,青蛙跳台阶问题 MATLAB
- C++静态库与动态库
- 找出平面上距离最近的两个点
- JNI浅析
- 没有数据分析大数据就什么也不是
- 5477 A Sweet Journey (贪心_上海网络赛)
- 580A
- HDU 5482(思路题目)
- 数据库相同版本的数据文件导入时出错