Как увеличить количество генерируемых значений в random.randint

Моя задача состоит в том, чтобы сгенерировать случайные значения в диапазоне от 300000 до 10000000. При этом все сгенерированные значения должны попадать в список, а сумма списка не должна превышать переменную limit Дополнительным условием еще является то, что количество значений необходимо регулировать переменной (до этого я в коде даже не дошел еще, т.к. в первой части воткнулся в проблему) Мой код:

    numbers = []
    total = 0
    limit = 22494741.76
    while len(numbers) < 3000 : 
        number = random.randint(300000, 10000000) 
        numbers.append(number)
        total += number
        print(total) 
        if total >= limit:
            numbers.pop()
            numbers.append(round(limit- sum(numbers)))
            break
    print(numbers)
    print(total)
Output: 
9194174
13985772
15862135
17430413
25741680

[9194174, 4791598, 1876363, 1568278, 5064329]

25741680

Эта штука генерирует 4-8 значений и все... Почему генератор быстро набирает необходимую сумму? Почему количество значений так мало? Почему генератор не может сгенерировать больше значений (по количеству), но более мелкими цифрами? Была идея сделать генератор на 1000 - 5000 случайных значений методом random.randint(min_value, max_value) все значения записать в список и потом пройтись по этому списку генератором random.choice(list_value). Но это не принесло результата... Опять получил 4-8 значений.


Ответы (0 шт):