Like-all
23.11.2011 10:47 rzkPhone
Сиплюсплюсач, подскажи, каким образом можно генерить _различные_ рандомные числа при запуске нескольких инстансов одного приложения? int somenumber = rand() всегда выдаёт одно и то же число. Знаю, вопрос тупой, но ответа я пока не нашёл :(
srand, нет?
http://www.cplusplus.com/reference/clibr...
srand(time(NULL));
Всем спасибо, разобрался.
Если под шипбошс, то лучше так:
FILETIME ft;
GetSystemTimeAsFileTime(&ft);
srand(hash_u32(ft.dwHighDateTime) + hash_u32(ft.dwLowDateTime));
/**
* http://www.concentric.net/~Ttwang/tech/i...
*/
unsigned long hash_u32(unsigned long a)
{
a = (a + 0x7ed55d16) + (a << 12);
a = (a ^ 0xc761c23c) ^ (a >> 19);
a = (a + 0x165667b1) + (a << 5);
a = (a + 0xd3a2646c) ^ (a << 9);
a = (a + 0xfd7046c5) + (a << 3);
a = (a ^ 0xb55a4f09) ^ (a >> 16);
return a;
}
Для параноиков.