Power set: Difference between revisions
Content added Content deleted
(→Perl : Module: ntheory: Add a loop over combinations) |
No edit summary |
||
Line 2,116: | Line 2,116: | ||
{two,three,four} |
{two,three,four} |
||
{one,two,three,four}</pre> |
{one,two,three,four}</pre> |
||
=={{header|PowerShell}}== |
|||
<lang PowerShell> |
|||
function power-set ($array) { |
|||
if($array) { |
|||
$n = $array.Count |
|||
function state($set, $cnt, $i){ |
|||
if($cnt -lt $n) { |
|||
state $set ($cnt + 1) ($i+1) |
|||
state ($set+@($array[$i])) ($cnt + 1) ($i+1) |
|||
} else { |
|||
"$set" |
|||
} |
|||
} |
|||
$set = state @() 0 0 |
|||
$power = 0..($set.Count-1) | foreach{@(0)} |
|||
$i = 0 |
|||
$set | foreach{$power[$i++] = $_.Split()} |
|||
$power |
|||
} else {@()} |
|||
} |
|||
$powerset = power-set @(1,2,3,4) |
|||
"number of sets in powerset: $($powerset.Count)" |
|||
"sets in powerset:" |
|||
$powerset | foreach{"$_"} |
|||
$powerset2 = @(@(), @(@())) |
|||
"number of sets in powerset2: $($powerset2.Count)" |
|||
</lang> |
|||
<b>Output:</b> |
|||
<pre> |
|||
number of sets in powerset: 16 |
|||
sets in powerset: |
|||
4 |
|||
3 |
|||
3 4 |
|||
2 |
|||
2 4 |
|||
2 3 |
|||
2 3 4 |
|||
1 |
|||
1 4 |
|||
1 3 |
|||
1 3 4 |
|||
1 2 |
|||
1 2 4 |
|||
1 2 3 |
|||
1 2 3 4 |
|||
number of sets in powerset2: 2 |
|||
</pre> |
|||
=={{header|Prolog}}== |
=={{header|Prolog}}== |