- 1
- 2
- 3
- 4
const int size = 100000;
const int maxVal = 1e9;
for(int i = 0; i < n; i++)
values[i] = rand() % (maxVal + 1);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+3
const int size = 100000;
const int maxVal = 1e9;
for(int i = 0; i < n; i++)
values[i] = rand() % (maxVal + 1);
Код работает на вин32
42, 43, 40, 41, 46, 47, 44, 45, 34, 35, 32, 33, 38, 39, 36, 37, 58, 59, 56, 57, 62, 63, 60, 61, 50, 51, 48, 49, 54, 55, 52, 53, 10, 11, 8, 9, 14, 15, 12, 13, 2, 3, 0, 1, 6, 7, 4, 5, 26, 27, 24, 25, 30, 31, 28, 29, 18, 19, 16, 17, 22, 23, 20, 21, 106, 107, 104, 105, 110, 111, 108, 109, 98, 99, 96, 97, 102, 103, 100, 101, 122, 123, 120, 121, 126, 127, 124, 125, 114, 115, 112, 113, 118, 119, 116, 117, 74, 75, 72, 73,
42, 34, 58, 50, 10, 2, 26, 18, 106, 98, 122, 114, 74,
Ну если есть равномерное распределение в [0, N-1], и M является делителем N, то, кмк, можно брать по модулю M.
http://www.gamedev.ru/code/forum/?id=206424&page=6#m89
Обратите внимание, что "мой" метод рулит, но на самом деле он не мой, а со стокового генератора Дельфей списан.
Так это вроде о другом?
1) ЛКГ - сам по себе говно с хуёвой статистикой;
2) нет изкоробочного интерфейса для генерации чисел в нужном диапазоне;
3) непредсказуемое поведение в многопоточной среде (дичайшие тормоза эдак в 100 раз на gcc и отдельный сид на каждый поток в msvc).
В крестах надо юзать Ускорение::Случайность или его брата из std и забыть про все эти модули и алгоритмы из делфей как про страшный сон... Там и генератор нормальный, и адаптеры для распределений правильно написаны.
Доставляет такая локализация ¹C++
По мотивам старой шутки с боярским C++.