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));
}
TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
#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) << " ";
}
Zjistit počet nových příspěvků
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
































© 2003–2026 Programujte.com