EPrime - motion stim issues

Paul Groot pfc.groot at gmail.com
Thu Aug 25 23:17:30 UTC 2011


Hi David,

That is indeed what happens when using the random function. (I was
just trying to talk myself out of a silly typo ;-)

A deeper understanding of the problem often raises new questions...
Purely academic off course!
I just realized that the EPrime (1.2) documentation mentions two types
of random generators: The standard visual basic functions (random,
randomize) and the E-Basic specific PRNG object. This might be
important if you use the seed value to setup your experiment to a
known state (for reproducibility and testing). The edat output file
logs a single seed value retrieved with PRNG.GetSeed(), so it would be
interesting to know if there is only one active PRNG under the hood. A
simple test shows that this is indeed the case:

PRNG.SetSeed 987654321
debug.print PRNG.GetSeed()
Randomize 123456789
debug.print  PRNG.GetSeed()

will print:
987654321
123456789

cheers
Paul

2011/8/25 David McFarlane <mcfarla9 at msu.edu>:
> Ah, I was not thinking about the underlying architecture of the Random()
> function, so you got me there!  Now the discussion must get more
> technical...
>
> Of course, if Random() is based on, say, a 32-bit cyclic PRNG, then it will
> repeat its sequence after no more than 2^32 = 4,294,967,296 samples (or
> perhaps more like 2^31 = 2,147,483,648 samples, because E-Basic/VBA does not
> use unsigned integers).  But that is not what I had in mind, because we
> rarely use Random() to pick numbers from that entire range.
>
> Rather, I had in mind more common & prosaic uses such as Random(0,99).  The
> underlying architecture now parses the full 32-bit range into 100 segments,
> with no guarantee that it will not draw samples from the same segment until
> a sample has been drawn from each segment.  To the contrary, it is extremely
> likely in this case that it will draw duplicate numbers within the first 100
> samples.  You can see this readily if you try a scaled-down example, say,
> Random(0,9) or even Random(0,2) -- I know, I just did this.
>
> More to the point, I was thinking in terms of my understanding of the
> *intent* or *specification* of the Random() function, apart from its actual
> implementation.  As I understand it, Random() is *meant* to act as a die
> roll, not as a shuffled deck of cards.  IOW, Random(1,6) should return a
> random number from 1 to 6 each time, without regard to what came before
> (just like a six-sided die), rather than return a number and then remember
> that number and not return it again until all other numbers have been
> returned (like a shuffled six-card deck).
>
> Did I get this right now?
>
> Best,
> -- David McFarlane, Professional Faultfinder
>
>
> At 8/25/2011 03:25 PM Thursday, Paul Groot wrote:
>>
>> Absolutely; the cyclic chain of numbers will definitely pop-up the
>> same numbers after a while... So they must have been but back ;-)
>>
>> my mistake!
>>
>> 2011/8/25 David McFarlane <mcfarla9 at msu.edu>:
>> > At 8/24/2011 03:20 PM Wednesday, Paul Groot wrote:
>> >>
>> >> Alternatively you could use a simple inline script at the start of the
>> >> trial and use the E-Basic random() function to set durations. (That
>> >> would be
>> >> uniform random w/o replacement.)
>> >
>> > Um, wouldn't the E-Basic random() function result in uniform random
>> > samples
>> > *with* replacement?
>> >
>> > -- David McFarlane, Professional Faultfinder
>
> --
> You received this message because you are subscribed to the Google Groups
> "E-Prime" group.
> To post to this group, send email to e-prime at googlegroups.com.
> To unsubscribe from this group, send email to
> e-prime+unsubscribe at googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/e-prime?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups "E-Prime" group.
To post to this group, send email to e-prime at googlegroups.com.
To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com.
For more options, visit this group at http://groups.google.com/group/e-prime?hl=en.



More information about the Eprime mailing list