Re: newbie is looking for a customDistribution function

*To*: mathgroup at smc.vnet.net*Subject*: [mg50411] Re: [mg50383] newbie is looking for a customDistribution function*From*: Tomas Garza <tgarza01 at prodigy.net.mx>*Date*: Thu, 2 Sep 2004 04:34:45 -0400 (EDT)*References*: <200409010549.BAA29848@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

From a formal point of view, a distribution function is defined on the reals. You can't, therefore, define it on lists of two, three, or more symbols. A frequency function, on the other hand, may be defined on any set of events. But, then, it is rather trivial for your problem: once you have your list distpro, just divide each value in the list by the sum of all the values, and that's it. Or, maybe, I misunderstood your question? Tomas Garza Mexico City ----- Original Message ----- From: "János" <janos.lobb at yale.edu> To: mathgroup at smc.vnet.net Subject: [mg50411] [mg50383] newbie is looking for a customDistribution function > Hi, > > I looked for it in the archives, but found none. I am looking for ways > to create a custom distribution, which I can call as a function. Here > is an example for illustration. Let's say I have a list created from a > 4 elements alphabet {a,b,c,d}: > > In[1]:= > lst={a,a,b,c,a,d,a,c,c,a} > > Out[1]= > {a,a,b,c,a,d,a,c,c,a} > > Distribute gives me - thanks David Park - all the two element > combinations of {a,b,c,d} > > In[11]:= > twocombs=Distribute[Table[{a,b,c,d},{2}],List] > > Out[11]= > {{a,a},{a,b},{a,c},{a,d},{b,a},{b,b},{b,c},{b,d},{c,a},{c,b},{c,c},{c,d} > ,{ > d,a},{d,b},{d,c},{d,d}} > > I can count the occurrence of an element of twocombs in lst with the > following function: > > occuranceCount[x_List] := Count[Partition[lst, 2, 1], x] > > Mapping this function over twocombs gives me the number of occurances > of elements of twocombs in lst: > > In[12]:= > distro=Map[occuranceCount,twocombs] > > Out[12]= > {1,1,1,1,0,0,1,0,2,0,1,0,1,0,0,0} > > It shows that for example {c,a} occurs twice, {d,a} occurs once and > {d,c} or {d,d} never occur. > > Now, I would like to create a distribution function called > twocombsLstDistribution which I could call and it would give me back > elements of twocombs with the probability as they occur in distro, that > is for on average I would get twice as much {c,a}s as {d,a}s and never > get {d.c} or {d,d}. > > How can I craft that ? > > /Of course I need it for an arbitrary but finite length string lst over > a fixed length alphabet {a,b,c,d,....} for k-length elements of kcombs, > and it has to be super fast :). My real lst is between 30,000 and > 70,000 element long over a four element alphabet and I am looking for k > between 5 and a few hundred. / > > Thanks ahead, > János > ------------------------------------------------- > People never lie so much as after a > hunt, during a war or before an election > - Otto von Bismarck - > >

**Follow-Ups**:**Re: Re: newbie is looking for a customDistribution function***From:*DrBob <drbob@bigfoot.com>

**References**:**newbie is looking for a customDistribution function***From:*János <janos.lobb@yale.edu>