qDebug() << mt_rand(1, 99999999);
quint64 Thread::mt_rand(qint64 a, qint64 b)
{
qsrand(QDateTime::currentMSecsSinceEpoch());
return extrand()%(b-a+1)+a;
}
quint64 Thread::extrand()
{
qsrand(QDateTime::currentMSecsSinceEpoch());
return qrand() + qrand() * ( RAND_MAX + 1 );
}
// значение this объекта-потока
код, плиз?
я знаю только
currentThreadId();
currentThread();
reinterpret_cast<quint64>( this );
reinterpret_cast<quint64>( currentThread() );
сенкс!
может кому пригодится.
аналог пхп функции mt_rand(); (Thread-Safety )
qDebug() << mt_rand(0, 9);
quint64 Thread::mt_rand(qint64 a, qint64 b)
{
qsrand(QDateTime::currentMSecsSinceEpoch() + reinterpret_cast<quint64>(this));
return extrand()%(b-a+1)+a;
}
quint64 Thread::extrand()
{
qsrand(QDateTime::currentMSecsSinceEpoch() + reinterpret_cast<quint64>(this));
return qrand() + qrand() * RAND_MAX;
}
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)