请问怎么使几个限定范围内的随机数的和也在指定的范围内?求大神
excel吧
全部回复
仅看楼主
level 13
比如5个随机数的范围是(55,95),它们的和是(275,375),请问公式要怎么弄?求大神
2018年05月07日 14点05分 1
level 15
A1=IF(ROW()=1,RANDBETWEEN(55,95),RANDBETWEEN(MAX(55,275-SUM(OFFSET(A$1,,,ROW()-1))-(5-ROW())*95),MIN(95,375-SUM(OFFSET(A$1,,,ROW()-1))-(5-ROW())*55)))
2018年05月07日 16点05分 2
下拉至A5,它们的和低限275无意义,可以大一点
2018年05月07日 16点05分
@MrWJJ 谢谢,是我给错随机数范围了,应该是(35,95)的
2018年05月08日 01点05分
@MrWJJ 我把A1到A4的范围设定成(35,90),A5(45,95),和范围(250,350),然后把你给的公式数字全改了,为什么A5会出现错误?
2018年05月08日 01点05分
@虚伪V无情S 只动最小随机数,公式中改三处55就行;要改和的区间,也只需动两处,改好A1下拉就行
2018年05月08日 02点05分
level 10
这多个随机数用代码穷举真不知道怎么写更好,随随便便就是几亿次的循环。
2018年05月08日 01点05分 3
楼上已经帮我解决了,只是我又多要求了一些东西[笑尿]
2018年05月08日 02点05分
level 15
=IF(ROW()=1,RANDBETWEEN(35,90),RANDBETWEEN(MAX(35+(ROW()=5)*10,250-SUM(OFFSET(A$1,,,ROW()-1))-(5-ROW())*90-(ROW()<5)*5),MIN(90+(ROW()=5)*5,350-SUM(OFFSET(A$1,,,ROW()-1))-(5-ROW())*35-(ROW()<5)*10)))
2018年05月08日 03点05分 4
同样拉至A5,公式从第二行开始控制,单独写A5可控性不够
2018年05月08日 03点05分
@MrWJJ 谢谢。从A2开始控制,那这样是不是就是A1设成原A5的范围,而其他的不变?就是调换几个数的位置
2018年05月08日 06点05分
@虚伪V无情S No,未改变预定要求,A5与前4行不一样
2018年05月08日 06点05分
多改变几次计算结果,可看见A5出90以上数字
2018年05月08日 06点05分
level 10
换一种思路,点一次按钮一次生成20组随机结果,如图所示:
代码如下:
Sub MyRnd()
Dim arr(1 To 20, 1 To 6)
Dim a%, b%, c%, d%, e%, i%, s%
For i = 1 To 20
line:
a = Int(60 * Rnd) + 35
b = Int(60 * Rnd) + 35
c = Int(60 * Rnd) + 35
d = Int(60 * Rnd) + 35
e = Int(60 * Rnd) + 35
s = a + b + c + d + e
If s > 250 And s < 350 Then
arr(i, 1) = a
arr(i, 2) = b
arr(i, 3) = c
arr(i, 4) = d
arr(i, 5) = e
arr(i, 6) = s
Else
GoTo line
End If
Next
[a2].Resize(20, 6) = arr
End Sub
2018年05月08日 04点05分 6
我之所以求公式是因为宏我不会用[喝酒]
2018年05月08日 06点05分
不过也是谢谢了
2018年05月08日 06点05分
level 1
大佬您逐鹿天地的链接不能用了希望可以发一下谢谢
2018年10月27日 07点10分 7
我发的1.3还能下载呀
2018年11月14日 15点11分
@虚伪V无情S 哦谢谢大佬了
2018年12月03日 08点12分
level 8
先得到和的随机数A 然后B=(A-最小数*5) 然后5个随机数abcde 得到5个随机数分别为 最小数+B*a/(a+b+c+d+e) 对结果进行判断 如果有大于最大数的就再随机几次 也可以对随机数进行削峰
2018年12月03日 09点12分 8
1