Я пытаюсь вычислить случайную сумму, но, например, по редкости:
choices = [10,100,1000,10000]
10
является наиболее распространенным, 100
более распространенным, 1000
редко и 10000
чрезвычайно редко.
Я пробовал это
import random
def getAmmounts():
choices = [10, 100, 1000, 10000]
values = [random.choice(choices) for i in range(10)]
return values
Которая возвращает хорошее количество значений, но они не такие случайные 10000
появляется довольно часто, когда почти никогда не должно появляться, когда я вызвал на него данные, которые я получил:
[1000, 10000, 100, 1000, 10000, 10, 1000, 10000, 100, 100]
Здесь два 10000's
и почти нет значений 10
, когда 10s
и 100s
должны быть наиболее распространенными, чем случайные 1000
в миксе, но почти никогда не имеют значения 10000. Есть ли способ настроить для этого функцию типа приоритета? Вот несколько хороших примеров данных о том, что это должно возвращать после того, как все сказано в готовом:
[10,10,100,10,10,100,1000]
И иногда 10000
, но это должно быть очень редко, есть идеи, как это настроить?
10s
должна быть наиболее распространенной, поэтому данные с 20 значениями10
должны появляться примерно 6-10 раз, но никогда не точны до 100-го значения, вероятно, 3-5 тысяч один или два раза, но почти никогда появление значения 10000 - person user2925490   schedule 19.11.201310
появляется в 80% случаев,100
появляется в 10% случаев,1000
появляется в 8% случаев, а10000
появляется в 2% случаев. Однако при назначении этому фактическому процентному соотношению имейте в виду, сколько разgetAmounts()
будет выполняться в реальном времени, так что, если пользователь может запускатьgetAmounts()
1000 раз в минуту в соответствии с вашей реализацией этого, вы все равно будете иметь10000
редкое число. (один или два раза). Для этого потребуется математика проб / статистики. - person jwarner112   schedule 19.11.201310
появился6 out of 20 times
. Изменив это на статистическую проблему, обратите внимание, что6 of 20
может быть выражено в процентах ((6/20)*100 = 30%!
) - person jwarner112   schedule 19.11.2013