[futurebasic] Re: [FB] No Noise

Message: < previous - next > : Reply : Subscribe : Cleanse
Home   : May 2002 : Group Archive : Group : All Groups

From: Robert Covington <artlythere@...>
Date: Wed, 15 May 2002 11:53:40 -0400
>>Much different than your first one.. :)
>>
>Different?

Better. I mean the setup was different.

 The output is different, but here's the result of my
>triple-call test for consistency on the code copied right out of my first
>email. I still don't understand your saying it gives different numbers.

My machine is fried.

>Anyway, the key to making my later version do what you want is finding
>the right transformation for the seed. Is it any better if you just leave
>it at RANDOM(x)?

Will try.

>You might also try something like this:
>RANDOM(x XOR (x << 2) XOR (x << 5))
>Is that less cyclic?

Will try.

>I'm pretty sure that the RND function performs a transmogrification very
>similar to the one in your pseudocode. Not necessarily the same
>algorithm, but the same principal, so it should give similar results.
>
>If what you need is a consistent sequence of randoms, just choose a
>single seed to start the sequence every time, and let it run from there.
>That way, each rnd is not dependent on your x, but will always be the
>same at the same depth in the sequence. That would eliminate the problem
>of diagonals if you are using x and y coordinates as seeds. (Your
>original code for x,y would give the same value on each of these pairs,
>which could make for strange results on diagonals:)
>
> x    y
> 0    20
> 1    19
> 2    18
> 3    17
>etc.

Hmm...

>LOCAL FN StartRndSequence
> RANDOM(&BE5EEDED)
>END FN
>
>DEF FN noise# = (((RND(65536) - 1) << 16) + RND(65536) - 1) \ &80000000
>'Return # between -1 and 1
>
>DIM x,trial
>
>FOR trial = 1 TO 5
> FN StartRndSequence
> FOR x = 1 to 12
>  PRINT FN noise#,
> NEXT x
> PRINT:PRINT
>NEXT trial
>
>This is probably the easiest way to avoid the cyclicism of using a
>counter (or counters) as a seed, and is simpler to implement, anyway.
>Maybe you really do need to have the same number generated every time you
>give the same x (and y), but I'm betting the code above will provide
>exactly what you need.
>
> e-e
> =J= a  y
>  "


Will try it. But I am not yet sure I am not hardware challenged on some
front. Life is strange right now.

Thanks for your aid.

Robert