Найти - Пользователи
Полная версия: Модуль random
Начало » Python для новичков » Модуль random
1
SRGB
Ув. корифеи, подскажите пожалуйста, какой из существующих методов распределения модуля random подойдет. Задача следующая:
A=1, B=0 вероятность выпадения A = X%, при N… итерациях. X и N переменные. Нужно чтоб генерировалось одно число (не список) по заданным параметрам.
Пока в голову приходит только сгенерировать список для A длинной в AL=N*X и B длинной в N-AL, сложиьт и перемешать shuffle. Но думаю что этот топорный велосипед н есамый правильный.
don_pedro
from random import *
#Создаем кортеж из 100 едениц или нулей где х-количество едениц.
randx=lambda x:choice((1,)*x+(0,)*(100-x))
print(randx(55))
Если я правильно вас понял.
SRGB
По сути очень похожее, решение, с теми же минусами, в процентах нет дробей, но это можно решить увеличив кол-во единиц/нулей до десяти тысяч, но это все таки расход ресурсов, и если использовать эту схему к примеру для генерации критов/уворотов то мне кажется уже после тысячного игрока будут ощутимые проблемы с ресурсами, ведь в памяти будут храниться как минимум по два кортежа длинной в 10000 знаков у 1000 игроков. Хотелось бы чтоб 55% вероятность события вычислялось без кортежей или списков. Но все равно спасибо мой вариант был таким:
n = int(input('Введите вероятность в процентах:'))
if n>100:
print('Всего 100%')
n = int(input('Введите вероятность в процентах:'))
my_list_orel = * n
print(my_list_orel)
reska_ver = 100 - n
my_list_reska = * reska_ver
print(my_list_reska)
total_list = my_list_orel + my_list_reska
random.shuffle(total_list)
don_pedro
Кортеж существует только один из него и вибираем при вызове. такчто не заморачивайтесь
noob_saibot
SRGB
random
Для randint вероятностное распределение в районе 40 процентов для средних значений диапазона занимающих 20% этого диапазона, не скажу за весь random, но проблемы могут начаться уже из-за этого. Я к тому что распределение не нормальное.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB