A not so Random Random
Dwight Hughes
dwighth at ipa.net
Tue May 25 18:50:25 UTC 1999
You could use my dire hack below which should avoid the the problem
(though your interval will now be (0,1]), but I haven't tested what
effects it might have on the random number generation in general. YMMV.
-- Dwight
'From Squeak 2.4c of May 10, 1999 on 25 May 1999 at 1:41:28 pm'!
!Random methodsFor: 'as yet unclassified' stamp: 'dwh 5/25/1999 13:34'!
next
" This method generates random instances of Float in the interval 0 to
1. "
seed := self nextValue.
(seed = m) ifTrue: [seed := seed - 1.0].
^seed / m! !
Juan Cires Martinez wrote:
>
> Hello:
>
> I am using a lot of Randoms lately, and something strange has happened a
> couple of times today: I get Randoms which after a while produce an
> unending sequence of 1.0s. The instance variables of these Randoms are:
>
> seed: 2.147483647e9
> a: 16807.0
> m: 2.147483647e9
> q: 127773.0
> r: 2836.0
>
> It is quite annoying. I do not know the details of the random number
> generation algorithm. Is there a way to avoid it besides explicit
> testing for 1.0 in Random>>next?
>
> Thanks, Juan.
More information about the Squeak-dev
mailing list
|