如何在 Excel 上模拟 0 到 365 之间的 25 个随机整数,使得它们的和为 365?非常感谢!
答案1
至少有三种可能的方法:
- 生成不受约束的,然后应用约束
- 生成完整的解决方案集并随机选择其中一个
- 用一个荷官
这是一个例子荷官.代码将使用单元格A1通过A25。 它:
- 生成 1 到 25 之间的随机数
- 使用第一步的结果来确定要增加哪个单元格
- 将单元格增加1
- 重复前三个步骤365次
示例代码:
Sub croupier()
Dim i As Long, j As Long
For i = 1 To 365
j = Application.WorksheetFunction.RandBetween(1, 25)
With Cells(j, 1)
.Value = .Value + 1
End With
Next i
End Sub
示例结果:
答案2
没有给出完整的答案,因为 1)OP 没有提供任何努力解决的证据,并且 2)这些通用类型的问题总是让我认为这是某位老师布置的家庭作业问题(尤其是当注意到重复时)......
使用公式:
单元格 A1:365
'所需的结束数字
单元格 A2:=RANDBETWEEN(0,$A$1)
'第一个随机数
单元格 A3 到单元格 A26:=RANDBETWEEN(0,$A$1-SUM(XXXXX))
‘我留下 XXXX 范围供您弄清楚
单元格 A27:=SUM(A2:A26)
'测试看看 A2 到 A26 加起来是否为 365