Я пытаюсь использовать mt19937 для генерации (хороших) случайных чисел на Veins для моего класса узла / автомобиля. Когда я использую один mt19937 для каждой машины, он работает, но когда я устанавливаю статический режим (один mt19937 на все машины), он не работает.
static mt19937 mt;
При использовании mt возникает одна ошибка:
uniform_int_distribution <int> unif_dist(1, 100);
...
return unif_dist(mt);
Ошибка:
Ошибка в модуле (cModule) vehDist_rsu (id = 48) во время настройки сети: класс «Veins :: ObstacleControl» не найден - возможно, его код не был связан, или класс не был зарегистрирован с помощью Register_Class () или в случае модулей и каналов с Define_Module () / Define_Channel ().
Ошибка во время очистки сети: Ошибка модели: ASSERT: условие vect [i] == NULL false в функции deleteNetwork, строка 437 csimulation.cc.
Я пробовал решить проблему с помощью 1 и 2, но не сработало.
seed-set = ${repetition}
), но мне нужно больше случайных чисел (другие источники), поэтому я создаю один mt19937 для использования на первом автомобиле (car [0]) и один srand для всех автомобилей. . Не лучший вариант, но работает. Я использую mt19937, чтобы выбрать, какая машина будет генерировать сообщение (я) (данные), и srand, чтобы выбрать, какая машина (на основе некоторых переменных) будет отправлять каждое сообщение. - person João Batista   schedule 30.04.2016