Re: random inside module
- To: mathgroup at smc.vnet.net
- Subject: [mg67744] Re: random inside module
- From: Bill Rowe <readnewsciv at earthlink.net>
- Date: Thu, 6 Jul 2006 06:52:52 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
On 7/5/06 at 4:17 AM, Arkadiusz.Majka at telekomunikacja.pl (Arkadiusz Majka) wrote: >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) ) <snip> It appears you are trying to create a list where every pth number is a random integer between 1 and 10 with a total length of a with some predefined initial list appended to the end. If I have this right, there is a much simpler (IMO) way to create this which doesn't use Module specifically maja[a_, p_, init_] := Flatten@{Table[0, {Mod[ a, p]}], {Random[Integer, {1, 10}], #} & /@ Table[0, {Floor[a/ p]}, {p - 1}], init} seems to do what you are trying to do For example In[54]:= maja[6,2,Range@3] Out[54]= {10,0,8,0,6,0,1,2,3} or In[55]:= maja[14,3,Range@3] Out[55]= {0,0,6,0,0,6,0,0,9,0,0,8,0,0,1,2,3} -- To reply via email subtract one hundred and four