Ah, that's much better. Thank you Dan.

On Fri, 8 Jan 2016 at 14:52 Dan <[email protected]> wrote:

> For the special problem of getting all the betas in the post, they can be
> calculated with combinatorics:
>
> betas(levels,parts) =
>   map(x->([x;levels+parts].-[0;x]-1)/parts, combinations(1:(levels+parts-1
> ),(levels-1)))
>
> The idea is to choose which parts of (0.0,0.2), (0.2,0.4)... (0.8,1.0) go
> into which level. The function does it for any number of levels and parts.
> For example for 4 parts of (0,1) and a 2-level tree:
>
> julia> betas(2,4)
>
>  [0.0,1.0]
>  [0.25,0.75]
>  [0.5,0.5]
>  [0.75,0.25]
>  [1.0,0.0]
>
>
> Needless to say this would be faster and more memory efficient than the
> other solutions.
>
> On Friday, January 8, 2016 at 1:23:13 AM UTC+2, Asbjørn Nilsen Riseth
> wrote:
>
>> Ah, that makes sense. I've mostly been working with Floats, so I didn't
>> realise there was an Int type.
>>
>> On Thu, 7 Jan 2016 at 23:02 Kristoffer Carlsson <[email protected]>
>> wrote:
>>
>>> Just an unsolicited tip here.
>>>
>>> Try not to "over type" your functions. Your function here would be
>>> cumbersome to use for someone on a 32-bit system for example. Unless you
>>> have a good reason, prefer Int instead of explicit Int32 / Int64.
>>>
>>>
>>> On Thursday, January 7, 2016 at 7:18:31 PM UTC+1, Asbjørn Nilsen Riseth
>>> wrote:
>>>>
>>>> For future reference, I used the following:
>>>>
>>>> function traverse(numpoints::Int64, β::Array{Int64}, level::Int64 = 1)
>>>>     N = length(β)
>>>>     @assert 0 < level < N
>>>>
>>>>     for i = 0:numpoints-sum(β[1:level-1])
>>>>         β[level] = i
>>>>         if level < N-2
>>>>             traverse(numpoints, β, level+1)
>>>>         else
>>>>             for j = 0:numpoints-sum(β[1:N-2])
>>>>                 β[N-1] = j
>>>>                 β[N] = numpoints - sum(β[1:N-1])
>>>>                 @show β/numpoints
>>>>             end
>>>>         end
>>>>     end
>>>> end
>>>> traverse(5, Array{Int64}(4))
>>>>
>>>> Asbjørn
>>>>
>>>>
>>>> On Thursday, 7 January 2016 17:14:03 UTC, Asbjørn Nilsen Riseth wrote:
>>>>>
>>>>> Thank you both. I'll have a look at a recursion approach.
>>>>>
>>>>>
>>>>> On Thursday, 7 January 2016 13:47:02 UTC, Tim Holy wrote:
>>>>>>
>>>>>> This is a problem for recursion. See, for example, the LightGraphs or
>>>>>> Graphs
>>>>>> packages.
>>>>>>
>>>>>> Best,
>>>>>> --Tim
>>>>>>
>>>>>> On Thursday, January 07, 2016 02:10:18 AM Asbjørn Nilsen Riseth
>>>>>> wrote:
>>>>>> > I would like to loop over all the \beta_i values of the following
>>>>>> tree.
>>>>>> >
>>>>>> > <
>>>>>> https://lh3.googleusercontent.com/-EBjanFs-BC4/Vo409IFAiTI/AAAAAAAAMEw/U7iq
>>>>>> > Ev9nPmU/s1600/tree.png>
>>>>>> >
>>>>>> > What is the best Julia way of doing this? I'm also interested in
>>>>>> > generalising this to N levels.
>>>>>> >
>>>>>> >
>>>>>> > For the given tree, the following works. *Is there a way to use
>>>>>> @nloops to
>>>>>> > shorten this?*
>>>>>> > n = Int(1/0.2)
>>>>>> > for i_3 = 0:n
>>>>>> >     for i_2 = 0:n-i_3
>>>>>> >         for i_1 = 0:n-i_2-i_3
>>>>>> >             i_0 = n-sum(@ntuple 3 i)
>>>>>> >             β = [i_3, i_2, i_1, i_0]/n
>>>>>> >             @show β
>>>>>> >         end
>>>>>> >     end
>>>>>> > end
>>>>>>
>>>>>>

Reply via email to