Как сделать так, чтобы в Excel, когда я имитировал 25 случайных целых чисел от 0 до 365, чтобы их сумма составляла 365? Спасибо вам большое!
2 ответа
Существует как минимум три возможных подхода:
- генерировать неограниченные и затем применять ограничения
- создать полный набор решений и выбрать один из них наугад
- использовать крупье
Это пример крупье. Код будет использовать ячейки от А1 до А25. Это:
- генерирует случайное число от 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
Пример результата:
Не давая полного ответа, потому что 1) ОП не предоставил никаких доказательств усилий для решения, и 2) эти общие типы вопросов всегда заставляют меня думать, что это домашняя задача, которую назначил какой-то учитель (особенно, когда отмечены дубликаты) .. ,
Используя формулы:
ячейка A1:365
'желаемое конечное число
ячейка A2: =RANDBETWEEN(0,$A$1)
'первое случайное число
от ячейки A3 к ячейке A26: =RANDBETWEEN(0,$A$1-SUM(XXXXX))
'Я оставляю диапазон XXXX, чтобы вы выяснили
ячейка A27: =SUM(A2:A26)
'тест, чтобы увидеть, что A2 к A26 добавляет до 365