Генерация случайных чисел от 0 до 5000 и умножение на 2. Вы должны работать в правильном диапазоне, если хотите обеспечить надлежащие результаты, и учитывать тот факт, что ваши границы включают в себя:
def test(start, stop, n):
start, stop = min(start, stop), max(start, stop)
realmax = (stop - start + 2) // 2 - 1 # Range from zero, inclusive
realstart = start + (start % 2) # Offset to ensure even result
return [randint(0, realmax) * 2 + realstart for _ in range(n)]
Если вам интересно, откуда берется (stop - start + 2) // 2 - 1
.
stop - start + 1
- это размер вашего включенного диапазона. - Другой
+ 1
необходим для создания // 2
действовать как разделение по полу вместо разделения по полу. Взяв в качестве примера диапазон 12–14, вы захотите сгенерировать два параметра, а не один. // 2
просто делит диапазон пополам пополам, но сохраняет его целым числом. - Окончательный вариант
- 1
преобразует размер диапазона в границу диапазона, поскольку randint
включительно, и мы начинаем с нуля.