```On Sep 15, 2004, at 10:39 AM, Robert Klemme wrote:

> Err, can't you just compare them?  If it only *seems* that values
> differ
> then there could be any number of other reasons for the differences you
> observe.

My project is a simulation.  I have a "dump" from a correct simulator.
I can compare my dump with theirs.

Part of the simulation includes random number generation.  To solve
this, the spec gives you their random number generation system to use
for the purposes of testing.  Dumps do not include random numbers that
were generated.

My simulation agrees with theirs for 938 turns.  At 939, we diverge.
The step we part on is 90% about random number generation and I've
tried to verify everything else to the best of my ability.

I am "guessing", but I think it's a good guess.

> Bignum ist just integer numbers.  AFAIK there is no such thing as a
> precision for this - all digits are correct.

Well, when you divide two Integers you can get a decimal, right?  My
understanding was that "big math" libraries cut off the division at
some point, to keep from choking on repeating decimal results.  Please
correct me, if I misunderstand.

Here's a look at my math:

def initialize()
# non-related setup work here

@random_seeds = [ 12345 ]
end

# and later

def test_random(limit)
until @random_seeds.size == 5
@random_seeds.push @random_seeds[-1] * 22695477 + 1
end
@random_seeds.shift

return ((@random_seeds[-1] / 65536) % 16384) % limit
end

test_random() is written to the provided specification, returning an
integer between 0 and limit.

The spec include the first 100 answers, which I agree with.  In fact,
we agree much farther than that.  As I said it takes 939 turns for us
to disagree and the random number generator can be used many times in a
turn.

I believe we see above that @random_seeds should always contain Bignums
(after the initial few Fixnums, of course).

What you've made me wonder is, what stages does the last line go
through?  Does that first division produce a Float?  If so, that's
probably my error right there.