random inside module
- To: mathgroup at smc.vnet.net
- Subject: [mg67692] random inside module
- From: "Arkadiusz Majka" <Arkadiusz.Majka at telekomunikacja.pl>
- Date: Wed, 5 Jul 2006 04:17:05 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
DearAll, The code below works fine ClearAll[list, maja, a] maja[T_] := Module[{i, p = 2}, list[0_] = {1, 2, 3}; a[i_] := 0 /; Mod[i, p] != 0; a[i_] := Random[Integer, {1, 10}] /; Mod[i, p] == 0; list[i_] := list[i] = Prepend[list[i - 1], a[i]]; list[T]] and may have an output Table[maja[i],{i,...}] {{1,2,3},{0,1,2,3},{9,0,1,2,3},{0,9,0,1,2,3},{7,0,9,0,1,2,3},...} we see that maja[i] differs from maja[i-1] that one element is added in front of the list (0 or Random(1,10) ) Now I want to manipulate p , so I create Module ClearAll[list, maja, a] maja[T_, p_] := Module[{i, list, a}, list[0_] = {1, 2, 3}; a[i_] := 0 /; Mod[i, p] != 0; a[i_] := Random[Integer, {1, 10}] /; Mod[i, p] == 0; list[i_] := list[i] = Prepend[list[i - 1], a[i]]; list[T]] The problem is now that, because I had to put 'list' within {}, the program is generating always new random numbers and I get {1,2,3},{0,1,2,3},{4,0,1,2,3},{0,3,0,1,2,3},{7,0,6,0,1,2,3},.... when I remove 'list' from {} sampling is ok but I lose the possibility of manipulating p . What to do? The general problem is : how to deal with random functions inside module? Please, help! Arek