1

Как сделать так, чтобы в Excel, когда я имитировал 25 случайных целых чисел от 0 до 365, чтобы их сумма составляла 365? Спасибо вам большое!

2 ответа2

3

Существует как минимум три возможных подхода:

  1. генерировать неограниченные и затем применять ограничения
  2. создать полный набор решений и выбрать один из них наугад
  3. использовать крупье

Это пример крупье. Код будет использовать ячейки от А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

Не давая полного ответа, потому что 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .