Lib - generating a list of random number

I try to generate an array of N random numbers in range between 2 integers min and max
but I don't understand very well how to coordinate the sue of srand and rand..
is there an already written function for that ? and btw is there any place to find such useful functions ?

thanks

joss

harp:~ > cat a.rb
n, max, min = 42, 10, 6
p Array.new(n).map{ rand((max - min) + 1) + min}

harp:~ > ruby a.rb
[6, 8, 8, 10, 9, 7, 6, 8, 9, 7, 10, 10, 7, 7, 9, 9, 6, 9, 10, 6, 8, 10, 6, 9, 7, 8, 8, 10, 8, 9, 9, 9, 10, 7, 9, 6, 6, 8, 8, 10, 9, 7]

-a

···

On Wed, 15 Nov 2006, Josselin wrote:

I try to generate an array of N random numbers in range between 2 integers min and max
but I don't understand very well how to coordinate the sue of srand and rand..
is there an already written function for that ? and btw is there any place to find such useful functions ?

thanks

joss

--
y religion is very simple. my religion is kindness. -- the dalai lama

I try to generate an array of N random numbers in range between 2 integers min and max
but I don't understand very well how to coordinate the sue of srand and rand..

I am not sure I understand you here. What does "sue" mean here?

is there an already written function for that ? and btw is there any place to find such useful functions ?

What about this?

>> def rand_seq(count, min, max)
>> (1..count).map { rand(max-min) + min }
>> end
=> nil
>> rand_seq 10, -5, 5
=> [2, -4, -2, -1, -3, 1, 1, 1, -3, 0]

Kind regards

  robert

···

On 14.11.2006 17:09, Josselin wrote:

Josselin wrote:

I try to generate an array of N random numbers in range between 2
integers min and max
but I don't understand very well how to coordinate the sue of srand and
rand..

They are very easy to use, but first you have to decide what you want to do.
What do you want to do? What role does "srand()" play? Be specific.

is there an already written function for that ?

For what, specifically? The range of random numbers, or the use of
"srand()"? If you always want the same sequence of random numbers, then
there is one solution, but if you always want a different sequence, there
is a different solution. Which do you want?

and btw is there any
place to find such useful functions ?

There sure is:

By the way, when you ask a question like this, it is best to express your
requirement as specifically as possible. You may have noticed that you got
two different replies to your inquiry, each with sample code that provided
differing interpretations of your request.

The solution to this problem is to leave no doubt about your requirement.
For example, when you say "between two integers" do you mean:

a < n < b

or

a <= n <= b

or some third possibility?

···

--
Paul Lutus
http://www.arachnoid.com

sorry sue => usage.... typing mistake...

thanks !!! that's exactly what I searched for...
I knew how to generate an array with an 'upper limit only' ...

···

On 2006-11-14 17:30:31 +0100, Robert Klemme <shortcutter@googlemail.com> said:

On 14.11.2006 17:09, Josselin wrote:

I try to generate an array of N random numbers in range between 2 integers min and max
but I don't understand very well how to coordinate the sue of srand and rand..

I am not sure I understand you here. What does "sue" mean here?

is there an already written function for that ? and btw is there any place to find such useful functions ?

What about this?

>> def rand_seq(count, min, max)
>> (1..count).map { rand(max-min) + min }
>> end
=> nil
>> rand_seq 10, -5, 5
=> [2, -4, -2, -1, -3, 1, 1, 1, -3, 0]

Kind regards

  robert

Josselin wrote:

I try to generate an array of N random numbers in range between 2
integers min and max
but I don't understand very well how to coordinate the sue of srand and
rand..

They are very easy to use, but first you have to decide what you want to do.
What do you want to do? What role does "srand()" play? Be specific.

is there an already written function for that ?

For what, specifically? The range of random numbers, or the use of
"srand()"? If you always want the same sequence of random numbers, then
there is one solution, but if you always want a different sequence, there
is a different solution. Which do you want?

and btw is there any place to find such useful functions ?

There sure is:

http://www.ruby-doc.org/

thanks

By the way, when you ask a question like this, it is best to express your
requirement as specifically as possible. You may have noticed that you got
two different replies to your inquiry, each with sample code that provided
differing interpretations of your request.

The solution to this problem is to leave no doubt about your requirement.
For example, when you say "between two integers" do you mean:

a < n < b

or
a <= n <= b

or some third possibility?

I apologize... I was looking for a result (how to generate a list of random integer numbers between a minimum and a maximum .. included) ... yes forgotten to specify including limits....

and at the same time trying to understand how to USE srand()and rand(),
my standard Ruby manual is clearly written but there is no example for this function.
I googled a lot but without any success regarding examples...
my first thought was: srand() is useful in setting a limit to the generator.... used by rand() so it could have been a clue to solve my problem...

···

On 2006-11-14 18:17:19 +0100, Paul Lutus <nospam@nosite.zzz> said:

Use ruby-doc.org

http://ruby-doc.org/core/classes/Kernel.html#M002012

Kirk Haines

···

On Wed, 15 Nov 2006, Josselin wrote:

I googled a lot but without any success regarding examples...
my first thought was: srand() is useful in setting a limit to the generator.... used by rand() so it could have been a clue to solve my problem...

Josselin wrote:

/ ...

and at the same time trying to understand how to USE srand()and rand(),
my standard Ruby manual is clearly written but there is no example for
this function.
I googled a lot but without any success regarding examples...
my first thought was: srand() is useful in setting a limit to the
generator.... used by rand() so it could have been a clue to solve my
problem...

All except you haven't yet said what the problem is. We could solve a stated
problem, easily.

srand() sets a particular starting point for a pseudorandom sequence. If you
use srand() and supply a fixed argument, you will get the same pseudorandom
sequence on each run of your program:

···

------------------------------------
#!/usr/bin/ruby -w

4.times do
   srand(1)
   10.times do
      print "#{rand(16)} "
   end
   puts
end
------------------------------------

Notice about this program that it puts out the same sequence every time. Now
comment out the "srand(1)" line and see the difference.

--
Paul Lutus
http://www.arachnoid.com