Создайте кумулятивную функцию распределения для каждого ID1, таким образом:
cdfs = defaultdict()
for id1,id2,val in d:
prevtotal = cdfs[id1][-1][0]
newtotal = prevtotal + val
cdfs[id1].append( (newtotal,id2) )
Таким образом, у вас будет
cdfs = { 701 : [ (0.2,1), (0.5,2), (1.0,3) ],
702 : [ (0.2,1), (0.5,2) ],
703 : [ (0.5,3) ] }
. Затем создайте случайное число и выполните поиск в списке.
def func(id1):
max = cdfs[id1][-1][0]
rand = random.random()*max
for upper,id2 in cdfs[id1]:
if upper>rand:
return id2
return None
Проверьте Настройки / Java / Стиль кода / Шаблон кода
Раздел Комментарий / Тип
Вы можете заменить author
любым нужным вам значением, и это повлияет на новые сгенерированные классы.
Однако, если с шаблоном все в порядке, но значение, указанное в теге автора, отсутствует, см. Этот вопрос SO :
$ {user}
использует значение ] user.name
переменная среды; поэтому вы можете передать -Duser.name = My Name
в eclipse.ini
, чтобы переопределить его.
Или, если хотите, вы можете изменить ярлык так, чтобы он указывал на:
C:/java/eclipse/eclipse.exe -vmargs -Duser.name="cleverUserNameToUseInSourceCode"
eclipse.ini
находится в Eclipse.app/Contents/MacOS/
, если вы щелкните правой кнопкой мыши и выберите Показать содержимое пакета. ZendStudio.ini
и находится в Applications / Zend Studio.app/Contents/MacOS/
. Посмотрите Окно -> Настройки -> Java -> Редактор -> Шаблоны.