Sponsored Content
Top Forums Programming How to generate a random number? Post 8621 by PxT on Monday 15th of October 2001 12:35:15 PM
Old 10-15-2001
From the linux rand(3) man page:

Quote:
The versions of rand() and srand() in the Linux C Library use the same random number gen­
erator as random() and srandom(), so the lower-order bits should be as random as the
higher-order bits. However, on older rand() implementations, the lower-order bits are
much less random than the higher-order bits.

In Numerical Recipes in C: The Art of Scientific Computing (William H. Press, Brian P.
Flannery, Saul A. Teukolsky, William T. Vetterling; New York: Cambridge University Press,
1992 (2nd ed., p. 277)), the following comments are made:
"If you want to generate a random integer between 1 and 10, you should always do
it by using high-order bits, as in

j=1+(int)(10.0*rand()/(RAND_MAX+1.0));

and never by anything resembling

j=1+(rand() % 10);

(which uses lower-order bits)."
In other words, under Linux your algorithm is probably fine, on other architectures it may not be very random. For portability, use the noted syntax or check the man page for your particular rand implementation.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

generate random number in korn shell

I want to be able to generate a random number within a korn shell script.. Preferably i would like to be able to state how many digits should be in this random number... ie 4 digits or 5 digits etc Any ideas? (2 Replies)
Discussion started by: frustrated1
2 Replies

2. Shell Programming and Scripting

Generate a random password

Hello All... Can someone help me generate a random password which will be 7 characters long which contains alpha-numeric characters using shell script. I am looking to store the output of the script that generates the password to a variable within a script and use it as the password. ... (5 Replies)
Discussion started by: chiru_h
5 Replies

3. Shell Programming and Scripting

generate random number in perl

Could any one tell how can I generate random number from (0, 100..200) in perl? Thanks! (2 Replies)
Discussion started by: zx1106
2 Replies

4. Programming

Generate random number

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

5. Shell Programming and Scripting

Unix random number generate in given range

Hi All, I have extracted some report from database for few activities done. Now I have a requirement to add some random time(In range of 10-35) in front of each activity. Can be generated random numbers in any bash/sh shell within a given number range, let's say in between 10-30. ... (10 Replies)
Discussion started by: gr8_usk
10 Replies

6. Shell Programming and Scripting

generate random base 16

How would you use bash to generate a random 32 digit number base 16? Like this one: 0cc06f2fa0166913291afcb788717458 (8 Replies)
Discussion started by: locoroco
8 Replies

7. UNIX for Dummies Questions & Answers

how to generate random number as as the first column of a txt file

Dear all, I have a question. I have a txt file say 4000 rows X 1800 Column. I 'd like to creat a new column as the first column which is a column of random numbers (n=4000) thanks a lot! Lin (2 Replies)
Discussion started by: forevertl
2 Replies

8. Shell Programming and Scripting

Need to generate a file with random data. /dev/[u]random doesn't exist.

Need to use dd to generate a large file from a sample file of random data. This is because I don't have /dev/urandom. I create a named pipe then: dd if=mynamed.fifo do=myfile.fifo bs=1024 count=1024 but when I cat a file to the fifo that's 1024 random bytes: cat randomfile.txt >... (7 Replies)
Discussion started by: Devyn
7 Replies

9. Shell Programming and Scripting

Help with generate a pair of random number

Hi, Is anybody experience generate a pair of random number by using awk command? I wanna to generate a pair of random number (range from 1 to 4124) and repeats it 416 times. Desired output 2 326 123 1256 341 14 3245 645 . . . I did write the below command: awk... (5 Replies)
Discussion started by: perl_beginner
5 Replies

10. OS X (Apple)

Generate a random number in a fully POSIX compliant shell, 'dash'...

Hi all... Apologies for any typos, etc... This took a while but it didn't beat me... Although there are many methods of generating random numbers in a POSIX shell this uses integer maths and a simple C source to create an executable to get epoch to microseconds accuracy if it is needed. I take... (8 Replies)
Discussion started by: wisecracker
8 Replies
values(5)							File Formats Manual							 values(5)

NAME
values - machine-dependent values SYNOPSIS
DESCRIPTION
This file contains a set of manifest constants, conditionally defined for particular processor architectures. The model assumed for integers is binary representation (one's or two's complement), where the sign is represented by the value of the high-order bit. The number of bits in a specified type (e.g., int). The value of a short integer with only the high-order bit set (in most implementations, 0x8000). The value of a long integer with only the high-order bit set (in most implementations, 0x80000000). The value of a regular integer with only the high-order bit set (usually the same as or The maximum value of a signed short integer (in most implementations, 0x7FFF == 32767). The maximum value of a signed long integer (in most implementations, 0x7FFFFFFF == 2147483647). The maximum value of a signed regular integer (usually the same as or The maximum value of a single-precision floating-point number, and its natural logarithm. The maximum value of a double-precision floating-point number, and its natural logarithm. The minimum positive value of a single-precision floating-point number, and its natural logarithm. The minimum positive value of a double-precision floating-point number, and its natural logarithm. The number of significant bits in the mantissa of a single-precision floating-point number. The number of significant bits in the mantissa of a double-precision floating-point number. FILES
SEE ALSO
intro(3), math(5). STANDARDS CONFORMANCE
values(5)
All times are GMT -4. The time now is 09:44 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy