Generating random numbers
Generating real random numbers is quite a difficult task for a computer. Commonly, we are using only a pseudo-random number generation (PRNG). The Qt framework provides the function qrand()
, a thread-safe version of std::rand()
. This function returns an integer between 0 and RAND_MAX
(defined in stdlib.h
). The following code shows two pseudo-random numbers:
qDebug() << "first number is" << qrand() % 10; qDebug() << "second number is" << qrand() % 10;
We are using a modulo operator to get a value between 0 and 9. Try to run your application several times. The numbers are always the same, in our case, 3 then 7. That is because each time we call qrand()
, we retrieve the next number of the pseudo-random sequence, but the sequence is always the same! Fortunately, we can use qsrand()
to initialize the PRNG with a seed. A seed is an unsigned integer that is used to generate a sequence. Try the next...