How to resolve the algorithm Power set step by step in the Seed7 programming language
How to resolve the algorithm Power set step by step in the Seed7 programming language
Table of Contents
Problem Statement
A set is a collection (container) of certain values, without any particular order, and no repeated values. It corresponds with a finite set in mathematics. A set can be implemented as an associative array (partial mapping) in which the value of each key-value pair is ignored. Given a set S, the power set (or powerset) of S, written P(S), or 2S, is the set of all subsets of S.
By using a library or built-in set type, or by defining a set type with necessary operations, write a function with a set S as input that yields the power set 2S of S.
For example, the power set of {1,2,3,4} is For a set which contains n elements, the corresponding power set has 2n elements, including the edge cases of empty set. The power set of the empty set is the set which contains itself (20 = 1): And the power set of the set which contains only the empty set, has two subsets, the empty set and the set which contains the empty set (21 = 2):
Extra credit: Demonstrate that your language supports these last two powersets.
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Power set step by step in the Seed7 programming language
Source code in the seed7 programming language
$ include "seed7_05.s7i";
const func array bitset: powerSet (in bitset: baseSet) is func
result
var array bitset: pwrSet is [] (bitset.value);
local
var integer: element is 0;
var integer: index is 0;
var bitset: aSet is bitset.value;
begin
for element range baseSet do
for key index range pwrSet do
aSet := pwrSet[index];
if element not in aSet then
incl(aSet, element);
pwrSet &:= aSet;
end if;
end for;
end for;
end func;
const proc: main is func
local
var bitset: aSet is bitset.value;
begin
for aSet range powerSet({1, 2, 3, 4}) do
writeln(aSet);
end for;
end func;
You may also check:How to resolve the algorithm Generate Chess960 starting position step by step in the D programming language
You may also check:How to resolve the algorithm Order two numerical lists step by step in the Nim programming language
You may also check:How to resolve the algorithm Time a function step by step in the BaCon programming language
You may also check:How to resolve the algorithm Sum multiples of 3 and 5 step by step in the PHP programming language
You may also check:How to resolve the algorithm Sequence of primorial primes step by step in the C programming language