Visit Our UNIX and Linux User Community


Random numbers without repetition


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Random numbers without repetition
# 1  
Old 07-13-2005
Random numbers without repetition

Is anyone know some scripts to generate random number without repetition using bash; for example generate 10 different random numbers.

Thanks
# 2  
Old 07-14-2005
Try...
Code:
awk -v loop=10 -v range=100 'BEGIN{
  srand()
  do {
    numb = 1 + int(rand() * range)
    if (!(numb in prev)) {
       print numb
       prev[numb] = 1
       count++
    }
  } while (count<loop)
}'

# 3  
Old 07-14-2005
Thanks, great code !!! but I need some clarifications.

when you compare the generated number to previous one, using :
if (!(numb in prev))
isn't comparing only the last generated random number with the current one or comparing all previous generated random number ? so only uniq number retained.

Thanks
# 4  
Old 07-14-2005
The code compares all previously generated numbers which are stored in an array called 'prev'.
# 5  
Old 07-14-2005
Select 10 numbers from 1 through 80

Code:
for (( i=1;i<=80;i++ )) do echo $RANDOM $i; done|sort -k1|cut
 -d" " -f2|head -10

it works using bash
# 6  
Old 07-14-2005
I actually want to use those random number on the fly such :
#! /bin/bash
while (condition)
do
number=$RANDOM
do some work here using random number until condition satisfied
done

the condition is independent of generated random number
but random numbers have to be generated as along as condition is met and
all numbers generated have to be unique.

Thanks again
# 7  
Old 07-14-2005
Quote:
Originally Posted by asal_email
I actually want to use those random number on the fly such :
#! /bin/bash
while (condition)
do
number=$RANDOM
do some work here using random number until condition satisfied
done

the condition is independent of generated random number
but random numbers have to be generated as along as condition is met and
all numbers generated have to be unique.

Thanks again
well, the bash variable "$RANROM" is a random integer between 0 and 32767. if the condition is independent of generated random number, try to imagine the loop block has already run 32768 cycles, all of numbers used up. Smilie
so the condition must consider the random numbers rang.
 

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Solaris

True random numbers in Sol10

Hi everyone I just got my hands on a T5120 running Sol10. As far as I've read, the T2 chip has a built-in hardware number generator. My question is: how can I access it to get random numbers in either C or Fortran? I'm using Sun Studio 12.4. I am currently trying to write an... (13 Replies)
Discussion started by: toguro123
13 Replies

2. Homework & Coursework Questions

Random numbers

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! Write a shell script that will take the sum of two random number? Ex: Random n1 +Random n2 = result i tries to write it but i had some dufficulties ... (3 Replies)
Discussion started by: renegade755
3 Replies

3. UNIX for Advanced & Expert Users

UNIX script for making random numbers without repetition

Hello, I have a column which have 7200 numbers and I am deciding to pick up 1440 numbers randomly without any reputation? Could any one let me know which script in unix will be work for my case? Regards Sajjad (17 Replies)
Discussion started by: sajmar
17 Replies

4. Shell Programming and Scripting

Generate random numbers in script

i want to generate a random number through a script, and even if anyone reads the script, they wont be able to figure out what the random number is. only the person who setup the script would know it. something like this could work: random the full thread is here: ... (13 Replies)
Discussion started by: SkySmart
13 Replies

5. Shell Programming and Scripting

Replace a random string of numbers

Hi Can someone help me with this one? I have string.. (PROC_PROC_ID == 12183) <--PID is dynamic and i want to replace the PID number with whatever PID from /opt/hpws/apache32_2/logs/httpd.pid file. i'm having problem since the PID on the string is dynamic. It may be 2-5 digits or more. ... (5 Replies)
Discussion started by: ryandegreat25
5 Replies

6. Shell Programming and Scripting

Generating random numbers

Hi, I am having trouble with generating random numbers. can this be done with awk? So I have a file that looks like this: 23 30 24 40 26 34 So column1 is start and column2 is end. I want to generate 3 random #'s between start and stop: So the output will look like this: ... (9 Replies)
Discussion started by: phil_heath
9 Replies

7. Shell Programming and Scripting

Random Numbers - Perl

Hi Guys I have a script to find Ranomd numbers. But I want to make the file to produce more random. Could u guys help me plz. In this Script I have the code that generates random in for loop and the range I have specified in my %chromlength input and out put will be like this chrno start end... (3 Replies)
Discussion started by: repinementer
3 Replies

8. Shell Programming and Scripting

Random numbers from 0 to 1000

Hello All, I want to make a simple script which generate random number from 0 to 1000. and simply display it. Plz HELP!!!!!! Regards, Waqas Ahmed (2 Replies)
Discussion started by: wakhan
2 Replies

9. Programming

How to set constrain on random numbers in c

Hi, I am currently trying to generate multiple random numbers in C for different variable:- die1=1+(rand()%5); die2=1+(rand()%5); die3=1+(rand()%5); die4=1+(rand()%5); But I need to contrain the total of die1, die2,die3 and die4 to be 5 as well. If i insert die1+die2+die3+die4=5, i do... (6 Replies)
Discussion started by: ahjiefreak
6 Replies

Featured Tech Videos