11-30-2009
You're reseeding the PRNG every time you're calling your own RANDOM, so it's no wonder you're getting different values every time. If you need just one "random" value, call rand() once per program execution and save the value, or save the seed value and reuse that.
10 More Discussions You Might Find Interesting
1. Programming
How to generate a random integer with specific range(for example, from 1 to 1000)?
Also, how to convert a floating point number into a integer? (2 Replies)
Discussion started by: MacMonster
2 Replies
2. Programming
I use standard C random number generation logic in my application.
long nCounter;
long lRndNo;
char rand;
srand48(nCounter);
lRndNo = lrand48();
sprintf(rand,"%010.10d",lRndNo);
However we always find that the rand generated starts with '0','1' or '2'. I could not logically prove if... (1 Reply)
Discussion started by: asutoshch
1 Replies
3. Programming
Hi...How can I generate random numbers between a given range ...preferably between 1 and 100...in UNIX C programming...?
I tried out functions like rand(),drand48() etc but didnt get satisfactory results...
Thanks a lot in advance.......... (1 Reply)
Discussion started by: tej.buch
1 Replies
4. Shell Programming and Scripting
HI
please help me in solving this issue.
I have a shell script which consists of ten statemnts ( i mean 10 executable statments)...........and if i run that script the 10 statmenst will execute continously ............
But now my probelm is i have to write another script --> to... (0 Replies)
Discussion started by: lalitka
0 Replies
5. Shell Programming and Scripting
How do I create a random number between 1 and 10 in kornshell? (2 Replies)
Discussion started by: dangral
2 Replies
6. Programming
Im new to C, and Im having a hard time getting a random number.
In bash, I would do something similar to the following to get a random number;
#!/bin/bash
seed1=$RANDOM
seed2=$RANDOM
seed3=$RANDOM
SEED=`expr $seed1 * $seed2 / $seed3`
echo ${SEED%.*}
Now, in online examples... (4 Replies)
Discussion started by: trey85stang
4 Replies
7. Programming
I saw this formula to generate random number between two specified values in shell script.the following.
$(((RANDOM%(max-min+divisibleBy))/divisibleBy*divisibleBy+min))
Give a example in book.
Generate random number between 6 and 30.like this.
$(((RANDOM%30/3+1)*3))
But I have a... (1 Reply)
Discussion started by: luoluo
1 Replies
8. Shell Programming and Scripting
Hello folks,
i have number for example 10 and i want to divide into 4 random pieces that may be (6+2+1+1). How can i do this via script i have random number 234951 and i want to divide into 31 pieces. (6 Replies)
Discussion started by: learnbash
6 Replies
9. Shell Programming and Scripting
Hi,
I'm trying to create a script that will print random numbers with length of three.
Below is the expected out.
928-377-899
942-458-310
951-948-511
962-681-415
995-161-708
997-997-209
thanks (4 Replies)
Discussion started by: reignangel2003
4 Replies
10. Programming
How can I choose randomly the row numbers of my file in awk? (4 Replies)
Discussion started by: Homa
4 Replies
LEARN ABOUT REDHAT
random
RANDOM(3) Linux Programmer's Manual RANDOM(3)
NAME
random, srandom, initstate, setstate - random number generator.
SYNOPSIS
#include <stdlib.h>
long int random(void);
void srandom(unsigned int seed);
char *initstate(unsigned int seed, char *state, size_t n);
char *setstate(char *state);
DESCRIPTION
The random() function uses a non-linear additive feedback random number generator employing a default table of size 31 long integers to
return successive pseudo-random numbers in the range from 0 to RAND_MAX. The period of this random number generator is very large, approx-
imately 16*((2**31)-1).
The srandom() function sets its argument as the seed for a new sequence of pseudo-random integers to be returned by random(). These
sequences are repeatable by calling srandom() with the same seed value. If no seed value is provided, the random() function is automati-
cally seeded with a value of 1.
The initstate() function allows a state array state to be initialized for use by random(). The size of the state array n is used by init-
state() to decide how sophisticated a random number generator it should use -- the larger the state array, the better the random numbers
will be. seed is the seed for the initialization, which specifies a starting point for the random number sequence, and provides for
restarting at the same point.
The setstate() function changes the state array used by the random() function. The state array state is used for random number generation
until the next call to initstate() or setstate(). state must first have been initialized using initstate() or be the result of a previous
call of setstate().
RETURN VALUE
The random() function returns a value between 0 and RAND_MAX. The srandom() function returns no value. The initstate() and setstate()
functions return a pointer to the previous state array, or NULL on error.
ERRORS
EINVAL A state array of less than 8 bytes was specified to initstate().
NOTES
Current "optimal" values for the size of the state array n are 8, 32, 64, 128, and 256 bytes; other amounts will be rounded down to the
nearest known amount. Using less than 8 bytes will cause an error.
CONFORMING TO
BSD 4.3
SEE ALSO
rand(3), srand(3)
GNU
2000-08-20 RANDOM(3)