MathGroup Archive 2004

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: newbie is looking for a customDistribution function

More generally, any mapping of a finite measure space into the extended real line implies a measure on the Borel sets, giving rise to a distribution function. It isn't difficult to map the values of a List into the reals--to Range[Length[theList]], for instance. Given such an embedding, any probability measure on the original set implies a distribution function, and vice-versa.

Anyway, the OP apparently wanted a sampling function, like Random[], which doesn't require computing a distribution function at all. He already knew (and described in his post) how to calculate relative frequencies.


On Thu, 2 Sep 2004 04:34:45 -0400 (EDT), Tomas Garza <tgarza01 at> wrote:

>> 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>
To: mathgroup at
> To: mathgroup at
> Subject: [mg50429] [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 -

DrBob at

  • Prev by Date: Re: Publicon problems converting sample document to LaTeX
  • Next by Date: Re: Re: Beware of NSolve - nastier example
  • Previous by thread: Re: newbie is looking for a customDistribution function
  • Next by thread: Re: newbie is looking for a customDistribution function