Вы можете сгенерировать n случайных чисел с заданной суммой, используя следующую функцию
import random
def numbers_with_sum(n, k):
"""n numbers with sum k"""
if n == 1:
return [k]
num = random.randint(1, k)
return [num] + numbers_with_sum(n - 1, k - num)
Это даст следующий вывод
In [1]: numbers_with_sum(3, 100)
Out[1]: [75, 9, 16]
Теперь сгенерировать случайный массив с суммой последних3 числа по 100 просто создают обычный случайный массив с (n - 3) элементами и добавляют его к массиву, который вы получаете из number_with_sum(3, 100)
.