Nemohu přijít na to, proč mi to negeneruje int čísla v rozsahu 0 až 0x7FFFFFFF.
random_device rd;
mt19937 gen(rd);
uniform_real_distribution<int> dis(0, INT_MAX);
for (int p = 0; p < 10; p++) {
printf("%i\n", dis(gen));
}
#2 MilanL
Neleze z toho vůbec nic, překladač mi hlásí chybu, že musí být hodnoty rozsahu generovaných čísel float čísla. Na netu jsem našel "x" příkladů náhodného generátoru ale ani jeden pořádně nefunguje tak, jak bych potřeboval tj, generovat kladná DWORD čísla v rozsahu 0 až 0x7FFFFFFF.
...requires one of float, double, or long double.
Už jsem na to přišel. Problém byl v uniform_INT_distribution... ;-) Generátor jsem použil pro zkušební setřídění pole 35 mil. řádků v paměti.
random_device rd;
mt19937 gen(rd());
uniform_int_distribution<> dist(0, 0x7FFFFFFF);
for (int i = 0; i < 10; ++i) {
cout << dist(gen) << " ";
}
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku