[SciPy-User] Semi-OT: weekend puzzle enumerating number of balls in bins
josef.pktd at gmail.com
josef.pktd at gmail.com
Mon Jan 13 12:06:39 EST 2014
On Mon, Jan 13, 2014 at 11:38 AM, <josef.pktd at gmail.com> wrote:
> On Mon, Jan 13, 2014 at 8:47 AM, <josef.pktd at gmail.com> wrote:
>> On Mon, Jan 13, 2014 at 1:46 AM, Alan G Isaac <alan.isaac at gmail.com> wrote:
>>> I think this does what you want.
>>> (BSD license.)
>>> Note I left out argument error checking
>>> for presentational clarity.
>>>
>>> Alan
>>>
>>>
>>> def exact_partitions(n, nbins):
>>> result = []
>>> if nbins == 1:
>>> result.append([n])
>>> else:
>>> for n1 in range(n+1):
>>> for part in exact_partitions(n-n1,nbins-1):
>>> result.append([n1]+part)
>>> return result
>>>
>>> def all_partitions(n, nbins):
>>> result = []
>>> for n1 in range(n+1):
>>> result += exact_partitions(n1, nbins)
>>> return result
>>
>>
>> Thanks Oleksandr, Alan
>> Those look like what I need and I can try later today.
>
> To report back
>
> for nobs = 10 rr = 7 which is the example in the journal article:
> Alan's is 80 times faster than my itertools version.
> Oleksandr's is twice as fast as Alans
if rr is small relative to nobs, then Alan's is just a little bit
slower than Oleksandr's.
And I should have checked Warren's count formula before trying
examples that break with MemoryError. :)
Thanks,
Josef
>
> The result is the same in all three versions, based on the statistics
> I need to calculate.
>
> Thanks again.
>
> Will end up in statsmodels as soon as I have figured out what the
> typos are (in my code or in the journal articles).
>
> Josef
>
>
>>
>> Thanks to all others
>> The count is useful to see how large the problems is, but for the
>> actual calculations I need to be able to calculate the test statistic,
>> mean and variances and so on for the full cases.
>>
>> For small cases we can use the exact distribution.
>> For medim cases we can use permutation resampling.
>> For large cases we can use the normal approximation.
>>
>> However, I also need the exact distribution to figure out what the
>> typos in the journal article or in my code for the normal
>> approximation are.
>>
>> Thanks.
>>
>> Josef
>>
>>
>>> _______________________________________________
>>> SciPy-User mailing list
>>> SciPy-User at scipy.org
>>> http://mail.scipy.org/mailman/listinfo/scipy-user
More information about the SciPy-User
mailing list