matlab产生随机整数,和为定值.为什么最后生成的一组数四舍五入之后和比定值小了一个?我要产生10个整数且和为2000000,按下面方法生成之后最后对nev求和却是1999999.怎么才能得到和为2000000的10

来源:学生作业学帮网 编辑:学帮网 时间:2024/04/29 01:08:15

matlab产生随机整数,和为定值.为什么最后生成的一组数四舍五入之后和比定值小了一个?
我要产生10个整数且和为2000000,按下面方法生成之后最后对nev求和却是1999999.怎么才能得到和为2000000的10整数呢?
M=2000000; % 最后总和
i=rand(1,10); % 10组数和为2000000
j=M*i/(sum(i));
nev=round(j); % 取整
请高手指点,不胜感激~

首先你的代码变得不错,只需在上面改一点即可.代码如下:
M=2000000; % 最后总和
i=rand(1,10); % 10组数和为2000000
j=M*i/(sum(i));
nev=round(j); % 取整
nev(10) = 2000000-sum(nev(1:9));
如你所知,10个数之和为2000000,其实自由度为9,所以当你确定了,其他9个数时,这10个数实际上是已确定的.所以我这里直接令最后一个为2000000-其他9个的和.
有什么问题请毫不犹豫追问我~

matlab 随机数的和为定值!随机产生5个数,5个数的和定值M,5个数都为非零的整数 matlab产生随机整数,和为定值.为什么最后生成的一组数四舍五入之后和比定值小了一个?我要产生10个整数且和为2000000,按下面方法生成之后最后对nev求和却是1999999.怎么才能得到和为2000000的10 matlab随机生成某范围内的一组整数且和为定值?比如,生成每个元素值均在[0,5]范围内且总和为54的整数数组? MATLAB在[1,100]间随机产生服从期望为2,方差为5的正态分布的随机整数 MATLAB在[0,8]间随机产生服从期望为8,方差为1的正态分布的随机整数,一次产生一个随机数.最好能有程序, MATLAB在[0,8]间随机产生服从期望为8,方差为1的正态分布的随机整数,一次产生一个随机数.最好能有程序, matlab中如何随机产生负整数 如何用matlab产生只有0和1的长度为N的随机序列 产生4阶随机方阵A,其元素为[10,90]区间的随机整数,然后判断A的元素是否能被7整除用matlab求解 如何用matlab产生随机噪声范围为[-0.2,0.2]? matlab中怎么随机生成一个M*N矩阵,使每列和为一固定值,每个元素为整数? matlab怎样随机产生一个6个元素向量,并使其内的元素线性和为1 matlab 产生[-10 10]之间的随机整数 求产生[-10 10]之间的随机整数 matlab 有哪位大哥知道matlab 随机产生整数函数 matlab 使用随机投点法计算定积分 ,以投点个数n为输入参数. 在MATLAB中如何随机产生一个由0和1两个数组成的长度为N的随机序列 matlab 如何产生行列的和相同的随机矩阵 且个数为矩阵且和为一固定数 固定数为以知的