Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 8, 2023 15:22:36

Vitek64
Зарегистрирован: 2022-10-19
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Случайные числа.

Добрый день.
Подскажите пожалуйста как это сделать.
Имеется два числа. Например: 2 и 100
Я хочу чтобы фнкция создала рандомный список из чисел в диапозоне от 2 до 100, но чтобы эти числа были только по возрастанию(т.е. Аn > An-1) и чтобы их было сколько угодно.
Т.е. я хочу получить что-то вроде:
2, 45, 60, 100
а в другом случае так:
2, 4, 6, 20, 30, 65, 89, 99 и т.п.

Или так, что пользователь вводит число 100 и получает такой рандомный список чисел.

Отредактировано Vitek64 (Янв. 8, 2023 15:27:19)

Офлайн

#2 Янв. 8, 2023 20:01:59

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1352
Репутация: +  118  -
Профиль   Отправить e-mail  

Случайные числа.

 import random
res = sorted(random.sample(range(2, 100), 8))
print(res)

Офлайн

#3 Янв. 8, 2023 21:29:26

Vitek64
Зарегистрирован: 2022-10-19
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Случайные числа.

xam1816
Спасибо большое! Это почти то что я хочу получить.
Но только я хотел бы чтобы при каждом вызове функции таких чисел было не строгое число(как в примере, 8) а случайное в этом диапазоне. Так можно сделать?
Т.е. например:
2, 6, 55, 35, 87, 98
2, 70, 56
2, 4, 5, 7, 10, 55, 76, 81, 85, 90, 96
И т.п.

Отредактировано Vitek64 (Янв. 8, 2023 21:31:55)

Офлайн

#4 Янв. 8, 2023 21:40:58

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1352
Репутация: +  118  -
Профиль   Отправить e-mail  

Случайные числа.

 import random
res = sorted(random.sample(range(2, 100), random.randint(5,50)))
print(res)

Офлайн

#5 Янв. 9, 2023 11:39:42

Vitek64
Зарегистрирован: 2022-10-19
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Случайные числа.

xam1816
Спасибо.
А можно как-то сделать увеличивающейся шаг?
Чтобы числа записались с шагом n, n+1, n+2 и т.д.

Т.е. числа с 2 до 100 были так:
2,3,5,8,12,17,23…100

Офлайн

#6 Янв. 9, 2023 15:31:37

Vitek64
Зарегистрирован: 2022-10-19
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Случайные числа.

Vitek64
Почитал про все методы random и так понял, что это не получится осуществить.. может можно осуществить такой шаг как-то при помощи for? Не могу найти такого решения.

Отредактировано Vitek64 (Янв. 9, 2023 15:33:25)

Офлайн

#7 Янв. 9, 2023 16:47:52

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1352
Репутация: +  118  -
Профиль   Отправить e-mail  

Случайные числа.

  
def gen(start, stop):
    n = -1
    while 1:
        n += 1
        start += n
        if start > stop:
            break
        yield start
 
print([i for i in gen(2, 100)])

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version