September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
33
Task/Power-set/Phix/power-set.phix
Normal file
33
Task/Power-set/Phix/power-set.phix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
sequence powerset
|
||||
integer step = 1
|
||||
|
||||
function pst(object key, object /*data*/, object /*user_data*/)
|
||||
integer k = 1
|
||||
while k<length(powerset) do
|
||||
k += step
|
||||
for j=1 to step do
|
||||
powerset[k] = append(powerset[k],key)
|
||||
k += 1
|
||||
end for
|
||||
end while
|
||||
step *= 2
|
||||
return 1
|
||||
end function
|
||||
|
||||
function power_set(integer d)
|
||||
powerset = repeat({},power(2,dict_size(d)))
|
||||
step = 1
|
||||
traverse_dict(routine_id("pst"),0,d)
|
||||
return powerset
|
||||
end function
|
||||
|
||||
integer d1234 = new_dict()
|
||||
setd(1,0,d1234)
|
||||
setd(2,0,d1234)
|
||||
setd(3,0,d1234)
|
||||
setd(4,0,d1234)
|
||||
?power_set(d1234)
|
||||
integer d0 = new_dict()
|
||||
?power_set(d0)
|
||||
setd({},0,d0)
|
||||
?power_set(d0)
|
||||
Loading…
Add table
Add a link
Reference in a new issue