Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
46
Task/Power-set/VBA/power-set.vba
Normal file
46
Task/Power-set/VBA/power-set.vba
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
Option Base 1
|
||||
Private Function power_set(ByRef st As Collection) As Collection
|
||||
Dim subset As Collection, pwset As New Collection
|
||||
For i = 0 To 2 ^ st.Count - 1
|
||||
Set subset = New Collection
|
||||
For j = 1 To st.Count
|
||||
If i And 2 ^ (j - 1) Then subset.Add st(j)
|
||||
Next j
|
||||
pwset.Add subset
|
||||
Next i
|
||||
Set power_set = pwset
|
||||
End Function
|
||||
Private Function print_set(ByRef st As Collection) As String
|
||||
'assume st is a collection of collections, holding integer variables
|
||||
Dim s() As String, t() As String
|
||||
ReDim s(st.Count)
|
||||
'Debug.Print "{";
|
||||
For i = 1 To st.Count
|
||||
If st(i).Count > 0 Then
|
||||
ReDim t(st(i).Count)
|
||||
For j = 1 To st(i).Count
|
||||
Select Case TypeName(st(i)(j))
|
||||
Case "Integer": t(j) = CStr(st(i)(j))
|
||||
Case "Collection": t(j) = "{}" 'assumes empty
|
||||
End Select
|
||||
Next j
|
||||
s(i) = "{" & Join(t, ", ") & "}"
|
||||
Else
|
||||
s(i) = "{}"
|
||||
End If
|
||||
Next i
|
||||
print_set = "{" & Join(s, ", ") & "}"
|
||||
End Function
|
||||
Public Sub rc()
|
||||
Dim rcset As New Collection, result As Collection
|
||||
For i = 1 To 4
|
||||
rcset.Add i
|
||||
Next i
|
||||
Debug.Print print_set(power_set(rcset))
|
||||
Set rcset = New Collection
|
||||
Debug.Print print_set(power_set(rcset))
|
||||
Dim emptyset As New Collection
|
||||
rcset.Add emptyset
|
||||
Debug.Print print_set(power_set(rcset))
|
||||
Debug.Print
|
||||
End Sub
|
||||
Loading…
Add table
Add a link
Reference in a new issue