Генерация случайного целого, взвешенного по медиане - PullRequest
2 голосов
/ 31 марта 2011

Где в диапазоне 10-20 вероятность возврата 15 будет в два раза больше, чем в любом крайнем случае.

Ответы [ 3 ]

9 голосов
/ 31 марта 2011

Вы можете использовать random.triangular() с Python> = 2.6:

n = random.triangular(10, 20)

n будет значением с плавающей запятой, поэтому вам необходимо преобразовать его в int.

1 голос
/ 31 марта 2011

Попробуйте и посмотрите, работает ли это (извините, если это не очень читабельно):

import random

def randIntWeight(min, max):
  distanceFromMedian = random.uniform(0, (max - min) / 2.0)

  return (max - min) / 2.0 + distanceFromMedian * (-1) ** (random.randrange(-1, 0))

Я все еще изучаю мою Теорию вероятностей, поэтому пожалуйста поправьте меня, если этоне прав.

0 голосов
/ 31 марта 2011

Как указал Блендер, вам действительно нужно быть более конкретным.Но в простейшем случае вы можете сгенерировать Треугольное Распределение из однородной переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...