Iterators

*To*: mathgroup at smc.vnet.net*Subject*: [mg32894] Iterators*From*: "Juan" <erfa11 at hotmail.com>*Date*: Mon, 18 Feb 2002 05:22:19 -0500 (EST)*Sender*: owner-wri-mathgroup at wolfram.com

Thanks for helping me.The idea of Thomas Burton is good enough. I write down what is the problem: The function LL[n,s,x] returns the partitions of n in s parts with number in a list defined before. LL is without Off[part::pspec], and LLL is with it. In[5]:=LL[n_, s_, x_List] := Module[{a = Array[p, s, 0], w, v, r, d, q, t, sol, m = Length[x]}, p[0] = 1; w = Table[r[[p[i]]], {i, s - 1}]; v = Flatten[{w, n - Plus @@ w}]; r = Union[x]; d = Last[Position[r, _?(#1 < n/s & )]][[1]]; q = Table[If[d + i > m, m, d + i], {i, s - 1}]; t = Table[{p[i], p[i - 1], q[[i]]}, {i, s - 1}]; sol = Flatten[Table[v, Evaluate[Sequence @@ t]], Abs[s - 2]]; Select[sol, MemberQ[x, Last[#1]] && Last[#1] == Max[#1] & ]] In[6]:=LL[19, 3, {1, 3, 4, 6, 8, 9}] Part::pspec:Part specification p[1] is neither an integer nor a list of integers. Part::pspec:Part specification p[2] is neither an integer nor a list of integers. Out[6]={{1, 9, 9}, {3, 8, 8}, {4, 6, 9}} Part::"pspec":"Part specification \!\(p[1]\) is neither an integer nor a list of integers." Part::"pspec":"Part specification \!\(p[2]\) is neither an integer nor a list of integers." In[7]:=LLL[n_, s_, x_List] := Module[{a = Array[p, s, 0], w, v, r, d, q, t, sol, m = Length[x]}, p[0] = 1; Off[Part::pspec]; w = Table[r[[p[i]]], {i, s - 1}]; v = Flatten[{w, n - Plus @@ w}]; r = Union[x]; d = Last[Position[r, _?(#1 < n/s & )]][[1]]; q = Table[If[d + i > m, m, d + i], {i, s - 1}]; t = Table[{p[i], p[i - 1], q[[i]]}, {i, s - 1}]; sol = Flatten[Table[v, Evaluate[Sequence @@ t]], Abs[s - 2]]; Select[sol, MemberQ[x, Last[#1]] && Last[#1] == Max[#1] & ]] In[8]:=LLL[19, 3, {1, 3, 4, 6, 8, 9}] Out[8]={{1, 9, 9}, {3, 8, 8}, {4, 6, 9}} (Without problem) In[9]:= Timing[LLL[67, 7, {3, 5, 7, 11, 13, 17, 19, 13, 19, 31, 17, 19, 41, 43, 47, 51, 59, 61}]] Out[9]= {0.18*Second, {{3, 3, 3, 3, 3, 5, 47}, {3, 3, 3, 3, 3, 11, 41}, {3, 3, 3, 3, 5, 7, 43}, {3, 3, 3, 3, 5, 19, 31}, {3, 3, 3, 3, 7, 7, 41}, {3, 3, 3, 3, 7, 17, 31}, {3, 3, 3, 3, 11, 13, 31}, {3, 3, 3, 3, 17, 19, 19}, {3, 3, 3, 5, 5, 5, 43}, {3, 3, 3, 5, 5, 7, 41}, {3, 3, 3, 5, 5, 17, 31}, {3, 3, 3, 5, 11, 11, 31}, {3, 3, 3, 5, 17, 17, 19}, {3, 3, 3, 7, 7, 13, 31}, {3, 3, 3, 7, 13, 19, 19}, {3, 3, 3, 7, 17, 17, 17}, {3, 3, 3, 11, 11, 17, 19}, {3, 3, 3, 11, 13, 17, 17}, {3, 3, 3, 13, 13, 13, 19}, {3, 3, 5, 5, 5, 5, 41}, {3, 3, 5, 5, 7, 13, 31}, {3, 3, 5, 5, 13, 19, 19}, {3, 3, 5, 5, 17, 17, 17}, {3, 3, 5, 7, 7, 11, 31}, {3, 3, 5, 7, 11, 19, 19}, {3, 3, 5, 7, 13, 17, 19}, {3, 3, 5, 11, 11, 17, 17}, {3, 3, 5, 11, 13, 13, 19}, {3, 3, 5, 13, 13, 13, 17}, {3, 3, 7, 7, 11, 17, 19}, {3, 3, 7, 7, 13, 17, 17}, {3, 3, 7, 11, 11, 13, 19}, {3, 3, 7, 11, 13, 13, 17}, {3, 3, 11, 11, 11, 11, 17}, {3, 3, 11, 11, 13, 13, 13}, {3, 5, 5, 5, 5, 13, 31}, {3, 5, 5, 5, 7, 11, 31}, {3, 5, 5, 5, 11, 19, 19}, {3, 5, 5, 5, 13, 17, 19}, {3, 5, 5, 7, 11, 17, 19}, {3, 5, 5, 7, 13, 17, 17}, {3, 5, 5, 11, 11, 13, 19}, {3, 5, 5, 11, 13, 13, 17}, {3, 5, 7, 7, 7, 7, 31}, {3, 5, 7, 7, 7, 19, 19}, {3, 5, 7, 7, 11, 17, 17}, {3, 5, 7, 7, 13, 13, 19}, {3, 5, 7, 11, 11, 11, 19}, {3, 5, 7, 11, 11, 13, 17}, {3, 5, 7, 13, 13, 13, 13}, {3, 5, 11, 11, 11, 13, 13}, {3, 7, 7, 7, 7, 17, 19}, {3, 7, 7, 7, 11, 13, 19}, {3, 7, 7, 7, 13, 13, 17}, {3, 7, 7, 11, 11, 11, 17}, {3, 7, 7, 11, 13, 13, 13}, {3, 7, 11, 11, 11, 11, 13}, {5, 5, 5, 5, 5, 11, 31}, {5, 5, 5, 5, 11, 17, 19}, {5, 5, 5, 5, 13, 17, 17}, {5, 5, 5, 7, 7, 7, 31}, {5, 5, 5, 7, 7, 19, 19}, {5, 5, 5, 7, 11, 17, 17}, {5, 5, 5, 7, 13, 13, 19}, {5, 5, 5, 11, 11, 11, 19}, {5, 5, 5, 11, 11, 13, 17}, {5, 5, 5, 13, 13, 13, 13}, {5, 5, 7, 7, 7, 17, 19}, {5, 5, 7, 7, 11, 13, 19}, {5, 5, 7, 7, 13, 13, 17}, {5, 5, 7, 11, 11, 11, 17}, {5, 5, 7, 11, 13, 13, 13}, {5, 5, 11, 11, 11, 11, 13}, {5, 7, 7, 7, 7, 17, 17}, {5, 7, 7, 7, 11, 11, 19}, {5, 7, 7, 7, 11, 13, 17}, {5, 7, 7, 11, 11, 13, 13}, {5, 7, 11, 11, 11, 11, 11}, {7, 7, 7, 7, 7, 13, 19}, {7, 7, 7, 7, 11, 11, 17}, {7, 7, 7, 7, 13, 13, 13}, {7, 7, 7, 11, 11, 11, 13}}} (This function is not finish.I have to fit q=Table[....], and t=Table[...]; I send it yust to give you a example of the problem) PD.You can give a hand! Regards Juan _________________________________________________________________ MSN Photos es la manera más sencilla de compartir e imprimir sus fotos: http://photos.latam.msn.com/Support/WorldWide.aspx