Am 11.10.2018 um 23:28 schrieb Riccardo (Jack) Lucchetti:
> On Thu, 11 Oct 2018, Riccardo (Jack) Lucchetti wrote:
> 
>> If I'm not mistaken, this is more or less what we came up with in the end
> 
> [...]
> 
> Actually, this is slightly faster:
> 
> <hansl>
> function strings powerset(strings S)
>      scalar l = nelem(S)
>      scalar N = 2^l
>      matrix P = zeros(N,l)
>      matrix s = seq(0, N-1)'
> 
>      loop i=1..l --quiet
>          matrix a = s % 2
>          matrix P[,i] = a
>          matrix s = (s-a)/2
>      endloop
> 
>      strings PS = array(N)
> 
>      loop i = 1..N --quiet
>          string c = ""
>          loop j = 1..l --quiet
>              if P[i, j]
>                  c = c ~ " " ~ S[j]
>              endif
>          endloop
>          PS[i] = c
>      endloop
> 
>      return PS
> end function
> </hansl>

Hi Jack, without having checked whether this is intended but the first 
entry in the PwrSet string array is empty.

Artur

Reply via email to