excel怎么生成总和是100的5个随机数(随机数范围5-40)? 10
5、13、19、24、39 ;
12、25、33、8、22
非常感谢 展开
用RAND()函数/RANDBETWEEN()函数和简单公式来生成这5个随机数即可。具体做法:
一、生成的随机数含小数
1. 在单元格中输入=RAND(),回车后单元格即可返回一个随机数字,其范围大于0小于1。这是生成给定范围内的随机数字的基础。
2. 生成制定范围的随机数的公式是:=A+RAND()*(B-A),其中A为给定数字最小范围,B是给定的最大范围。要生成大于5小于40的随机数字,因为(40-5)*RAND()返回结果是0到35之间,加上范围的下限5就返回了5到40之间的数字。
3. 用上数公式生成前2个数,第3个数的上限则要计算后确定,即为40与(100—随机数1-随机数2)中的小者。第4个数的上限同样要计算后确定,即为40与(100—随机数1-随机数2-随机数3)中的小者。第5个数等于100与其余四个随机数的差。
二、生成随机整数:用RANDBETWEEN()函数,该函数生成大于等于1小于等于100的随机整数。语法:=RANDBETWEEN(范围下限整数,范围上限整数),结果返回包含上下限在内的整数。第1、2个随机数直接生成,其余随机数的生成上限如一之3。
A1=randbetween(5,40)
B1=randbetween(5,40)
C1=randbetween(5,min(40,(100-sum(a1:b1))))
D1=randbetween(5,min(40,(100-sum(a1:c1))))
E1=100-sum(a1:d1)
其实完整的算法中还要考虑前三个数的和小于等于20(后两个数必须同为40或有一个要大于40)、前四个数小于60而第5个数要大于40等问题。严格的做法是要加入if判断和条件调整。太复杂了!
=ROUND(RAND()*35+5,0)
回车;
A2输入
=ROUND(RAND()*(MIN(75-SUM(A$1:A1)+ROW()*5,40)-5)+5,0)
回车并向下填充到A3;
A4输入
=ROUND(RAND()*(MIN(75-SUM(A$1:A3)+ROW()*5,40)-MAX((60-SUM(A$1:A3)),5))+MAX(60-SUM(A$1:A3),5),0)
回车;
A5输入
=100-SUM(A1:A4)
回车。
按F9可更新数值。
2015-02-12
重点提示:
这个可以 用规划求解的方式 来做
比如 在A1:A5 区域内是你要求的数据
A6 输入公式 =sum(a1:a5) (B6 输入你要得到的和值 可选)
然后 对 A6 进行规划求解
设定可变单元格 为A1:A5
添加条件 整数、大于等于5 小于等于40 ……