Задать вопрос
TonyStark1337
@TonyStark1337

Случайные числа с заданной сумой, какой алгоритм?

Привет, какой алгоритм уже есть или как сделать свой если надо найти 4 рандомных числа сума которых ровна N, допустим x+y+z+m = 100, где каждая больше другой, то есть x > y > z > m. У кого какие мысли ?
  • Вопрос задан
  • 316 просмотров
Подписаться 2 Средний 2 комментария
Ответ пользователя xmoonlight К ответам на вопрос (6)
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Добавлю экзотическое заполнение.
Можно генерить любые числа рандомно (r) от 0 до 1 и поочерёдно заполнять переменные.
По шагам (на каждой строке r - генерируется только один раз):
1. (x+y+z+m+r<100)?(x+=r):break
2. (y+r<x&&x+y+z+m+r<=100)?y+=r:goto 1
3. (z+r<y&&x+y+z+m+r<=100)?z+=r:goto 1
4. (m+r<z&&x+y+z+m+r<=100)?m+=r:goto 1
5. goto 1

PS: Если избавиться от однотипных переменных в пользу массива, то получим сразу два бонуса:
1. Можно использовать простую рекурсию.
2. Набор количества значений в сумме - полностью произвольно-задаваемый.
Ответ написан