作业帮 > 综合 > 作业

matlab随机生成某范围内的一组整数且和为定值?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/09 02:25:09
matlab随机生成某范围内的一组整数且和为定值?
比如,生成每个元素值均在[0,5]范围内且总和为54的整数数组?
clear
S=54; %数组总和
Amin=0; %数据最小值
Amax=5; %数据最大值
SumA=S-1;
n=0;
while SumAAmax
temp=Amin+fix((Amax+1-Amin)*rand(1));
end
STemp=SumA+temp;
if STempAmax
temp=Amin+fix((Amax+1-Amin)*rand(1));
end
STemp=S+temp;
if STemp==S
A(n)=temp;
end
end
A %需要的数组
sum(A) %数组总和
下面是输出结果(每次执行都会有不同的输出):
A = 1 1 4 3 4 4 2 1 2 1 3 5 3 3 0 3 2 1 2 3 4 1 0 1 0
A= 1 1 0 3 2 2 3 4 0 0 1 5 3 4 2 2 1 1 1 5 0 0 2 5 1 2 2 0 0 1