generating negative random numbers

J

Josselin

I know how to generate positive random numbers, but is it possible to
generate a random number in a range such [-9..+9] ?
tfyh

joss
 
J

Josselin

Rand(18)-9

Gerald Ebberink
Laser Technician

NCLR B.V.
PO box 2662
Enschede 7500CR
The Netherlands
Work: 31 53 4891110
Direct: 31 53 4893961
Fax: 31 53 4891102
Email: (e-mail address removed)

http://www.linkedin.com/in/geraldebberink




Want a signature like this?

-----Original Message-----
From: Josselin [mailto:[email protected]]
Sent: dinsdag 30 januari 2007 8:10
To: ruby-talk ML
Subject: generating negative random numbers

I know how to generate positive random numbers, but is it possible to
generate a random number in a range such [-9..+9] ?
tfyh

joss

thanks ... I'd never think about it !
 
T

Tim Bray

I know how to generate positive random numbers, but is it possible
to generate a random number in a range such [-9..+9] ?

irb(main):001:0> def rrand(x)
irb(main):002:1> rand(2*x) - x
irb(main):003:1> end
=> nil
irb(main):004:0> rrand 9
=> -7
irb(main):005:0> rrand 9
=> -8
irb(main):006:0> rrand 9
=> 5
irb(main):007:0> rrand 9
=> -8
 
F

Farrel Lifson

I know how to generate positive random numbers, but is it possible to
generate a random number in a range such [-9..+9] ?
tfyh

joss

rand(19) - 9

Farrel
 
M

Martin DeMello

I know how to generate positive random numbers, but is it possible to
generate a random number in a range such [-9..+9] ?
tfyh

class Range
def rand
Kernel::rand(last - first + 1) + first
end
end

(-9..9).rand

martin
 
J

Josselin

I know how to generate positive random numbers, but is it possible to
generate a random number in a range such [-9..+9] ?
tfyh

joss

thanks to all of u, got it, but why there is no 'standard' function in
the lib ...
 
C

Christoffer Lernö

I know how to generate positive random numbers, but is it possible to
generate a random number in a range such [-9..+9] ?
tfyh

class Range
def rand
Kernel::rand(last - first + 1) + first
end
end

(-9..9).rand

(-9...10).rand won't give the expected answer. I think the below
should fix the problem when the last entry in the range is excluded:

class Range
def rand
return first if exclude_end? && last == first
Kernel::rand(last - first + (exclude_end? ? 0 : 1)) + first
end
end
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top