That's actually a big question, because computers are deterministic,
so it is hard to see how they could act randomly.

There are all sorts of pseudo-random generators which will produce a
stream of output which appear more or less random. The larger and more
sophisticated ones produce much better results than the poorly
designed ones. Decades ago there was a "random" generator called randu
which was notoriously bad, but before people figured out how flawed it
was, hundreds of simulation studies had been performed with it, and
most ended up being rejected as invalid based on the poor statistical
qualities of randu.

Today there are several high-quality generators, such as the Mersenne
Twister. George Marsaglia has designed several excellent generators,
as well as the Diehard battery of tests to measure the statistical
quality of any generator.

However, you seem to be wanting a single number which will be
different each time you run a program.

You could do something as simple as

int random_value = 2 + (time() % 9);

Or you could pick any well-known random generator, seed it, and use it
to produce what you need.

To get you started, this function will produce a pseudo-random stream
of output in the range 0..65535 using Marsaglia's "multiply with
carry" algorithm.


unsigned int mwc()
{
  static unsigned int x = time(0);
  x = 63663 * (x&65535) + (x>>16);
  return x&65535;
}

Don

On Jul 31, 4:39 am, Puneet Gautam <puneet.nsi...@gmail.com> wrote:
> Can we write a code to generate random numbers without using rand function..?
>
> Pls help me on this!!

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to