
excel
我先从数学角度重述一下你的问题: 设有任意实数n;现要求在闭区间[a,b]上找到3个数x、y、z,令其满足: n=(x+y+z)/3;————————————————①显然,一般情况下这样的结果都有无数个。而你想要的是能够获取这样一组结果的
excel公式。(1)首先,本题有一个默认条件,就是:n∈[a,b];否则①式无解。(2)1个方程——①;3个未知数——x、y、z;是不可能得到确定解的;我们可以: 用随机函数指定其中2个的值,剩下那个则根据方程①解出;这样就得到一组随机解了。(3)x、y、z是以n为平均数的一组数;那么它们必然满足: 有的 ≤ n;有的 ≥ n;所以: 随机指定的那2个数(不妨取x、y),最好分别位于区间[a,n]、[n,b]之上;并且: 其中任意一个,都不能偏离n太远,否则剩余的数无法将平均值“拉回”到n上;具体而言就是(假定先确定x,后确定y): 1)n-x ≤ 2(b-n); 2)2n-b-x ≤ y-n ≤ 2n-a-x;根据以上各条件可先确定x、y的范围;那么随机函数也应该在此范围内取值: 1)x∈[max(a,3n-2b),n]; 2)y∈[max(n,3n-b-x),min(3n-a-x,b)]; 为便于记录,分别将上述两对边界值记作:x1、x2,y1、y2;则计算公式如下:(1)x=rand()×(x2-x1)+x1;(2)y=rand()×(y2-y1)+y1;(3)z=3×n-x-y; 你可自行将以上变量转化为
excel中相应的单元格。