On Friday, 3 January 2014 at 13:39:41 UTC, Andrea Fontana wrote:
On Friday, 3 January 2014 at 01:01:21 UTC, Frustrated wrote:
On Thursday, 2 January 2014 at 20:38:10 UTC, Jeroen Bollen wrote:
[...]
e.g.,

seed(k);
for(i = 1..10)
print(rnd(i));

and

for(i = 1..10)
{
seed(time);
print(rnd(i));
}

will both produce random sequences of numbers(and random sequences of numbers are "identically random".
[...]

The second example is error-prone. If "time" var doesn't change between cycle, it's not random at all.

Wrong, in this example I'm using rnd(i) as having a seed i. Obviously, I'm not using i as an interval.

i still changes per iteration of the loop so rnd still changes. (if I did not seed the rnd I would not have used rnd(i) but rnd;)

i.e.,

for(i = 1..10)
{
seed(time);
print(rnd(i));
}

and

for(i = 1..10)
{
seed(time);
print(rnd);
}

are different

but my example could easily have been written as

for(i = 1..10)
{
seed(time+i);
print(rnd);
}

which may be more obvious. The point of writing it the first way was to try to make it more clear about actually changing the seed vs the ith random number. (the seed changes the sequence of random numbers to another sequence but rnd returns the ith value in the sequence which is ultimately cyclical)








Reply via email to