The UNIX and Linux Forums  
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.

Go Back   The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting
.
google unix.com



Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here.

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Random numbers from 0 to 1000 wakhan Shell Programming and Scripting 2 07-15-2008 07:41 AM
How to set constrain on random numbers in c ahjiefreak High Level Programming 6 01-11-2008 04:46 AM
Random number generation in ksh mervin2006 UNIX for Dummies Questions & Answers 2 04-27-2007 02:02 AM
Random number generation tej.buch High Level Programming 1 02-13-2006 10:07 AM
Random numbers without repetition asal_email UNIX for Dummies Questions & Answers 8 07-14-2005 04:02 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish
 
LinkBack Thread Tools Search this Thread Rate Thread Display Modes
  #1 (permalink)  
Old 11-25-2008
lalitka lalitka is offline
Registered User
  
 

Join Date: Oct 2008
Posts: 11
Random NUmbers Generation with out repetation

Hi
I have the below code

Code:
 
MAXCOUNT=10
count=1
echo
echo "$MAXCOUNT random numbers:"
echo "-----------------"
while [ "$count" -le $MAXCOUNT ]      # Generate 10 ($MAXCOUNT) random integers.
do
 number=$[ [$RANDOM % 20  ] + 1 ]
    "echo $number"
  let "count += 1"  # Increment count.
done
But aftre executing this

i am getting repetative randiom numbers like ,2,5,6,6,10,8,18,14

but i want unique random numbers ?

can any one help me in solving this ?

Last edited by zaxxon; 11-25-2008 at 02:15 AM.. Reason: codetags implemented
  #2 (permalink)  
Old 11-25-2008
zaxxon's Avatar
zaxxon zaxxon is offline Forum Staff  
Moderator
  
 

Join Date: Sep 2007
Location: Germany
Posts: 2,257
Pipe the numbers into sort & uniq. You will get than less since the duplicates will be deleted, but maybe you have another loop checking the count of numbers and generate some more. Maybe there is already some nice random function in Perl.

Also these lines
Quote:
number=$[ [$RANDOM % 20 ] + 1 ]
"echo $number"
did not work for me. I had to change them to
Code:
number=$(( ( $RANDOM % 20 ) + 1 ))
echo "$number"
The 1st line could be because of your shell, but the " in front of the echo seems to be a typo.

Also please use [ code ] and [ /code ] tags to make your code better visible; I edited your post to show what I mean, look for the blue background of your code.

Last edited by zaxxon; 11-25-2008 at 02:24 AM..
  #3 (permalink)  
Old 11-25-2008
lalitka lalitka is offline
Registered User
  
 

Join Date: Oct 2008
Posts: 11
Random Numbers generation with out repeattion

hey thanks for ur response, can u explain me clearly what i have to do now i mean .how i hav eto pipe and sort , i am very new to shells cripting thats why i amasking u the code for that

and i wnat to generate 1 to 20 random unique numbers
  #4 (permalink)  
Old 11-25-2008
lalitka lalitka is offline
Registered User
  
 

Join Date: Oct 2008
Posts: 11
Generate Random numbers from 1 to 18 using perl script

Hi

Can any one give me a perl script for generating random numbers from 1 to 18 only , and the random numbers should be unique .................

please help me in solving this (only perl Script
  #5 (permalink)  
Old 11-25-2008
Konerak Konerak is offline
Registered User
  
 

Join Date: Nov 2008
Posts: 20
Are you posting homework assignments? Why do you need different random numbers from 1 to 18?

There are 2 ways:

1/ keep generating random numbers, reject the ones you already have (use a hash to store them) until you have enough different ones
-> This creates a lot of extra work, and if you want more random numbers than available in your range, you'll get an infinite loop. Worst-case execution time is unpredictable (averages can be calculated with use of statistics)

2/ Generate an array of "accepted values" and pick a random element from the array, then remove it from the array.
-> Nice & fast if you got a small range, predictable worst-case scenario

If you want me to write out the script, take a minute to explain why you need it. If it's for homework, we won't solve it for you. We'll help you think and we'll look at your scripts and find mistakes, but won't write the whole thing for you.
  #6 (permalink)  
Old 11-25-2008
zaxxon's Avatar
zaxxon zaxxon is offline Forum Staff  
Moderator
  
 

Join Date: Sep 2007
Location: Germany
Posts: 2,257
Had not much time to look into it so far, but you got some hints I see

Must not be homework; it could be out of interesst or something like that. The sample code lalitka posted I found in the Advanced Bash Scripting Guide.
  #7 (permalink)  
Old 11-25-2008
Konerak Konerak is offline
Registered User
  
 

Join Date: Nov 2008
Posts: 20
I'll even write it in perl for him if he can convince me it's not homework. But you learn a lot more from trying yourself (and having your mistakes corrected) than reading other peoples code.

There's lots of "other peoples code" on the web, too
Sponsored Links
Closed Thread

Bookmarks

Tags
shell script, shell scripting, unix scripting, unix scripting basics

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -4. The time now is 08:32 PM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited. Language translation by Google.
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
The UNIX and Linux Forums Content Copyright ©1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant URLs by vBSEO 3.2.0