34 lines
692 B
VB.net
34 lines
692 B
VB.net
Function Dec2Bin(n)
|
|
q = n
|
|
Dec2Bin = ""
|
|
Do Until q = 0
|
|
Dec2Bin = CStr(q Mod 2) & Dec2Bin
|
|
q = Int(q / 2)
|
|
Loop
|
|
Dec2Bin = Right("00000" & Dec2Bin,6)
|
|
End Function
|
|
|
|
Function PowerSet(s)
|
|
arrS = Split(s,",")
|
|
PowerSet = "{"
|
|
For i = 0 To 2^(UBound(arrS)+1)-1
|
|
If i = 0 Then
|
|
PowerSet = PowerSet & "{},"
|
|
Else
|
|
binS = Dec2Bin(i)
|
|
PowerSet = PowerSet & "{"
|
|
c = 0
|
|
For j = Len(binS) To 1 Step -1
|
|
If CInt(Mid(binS,j,1)) = 1 Then
|
|
PowerSet = PowerSet & arrS(c) & ","
|
|
End If
|
|
c = c + 1
|
|
Next
|
|
PowerSet = Mid(PowerSet,1,Len(PowerSet)-1) & "},"
|
|
End If
|
|
Next
|
|
PowerSet = Mid(PowerSet,1,Len(PowerSet)-1) & "}"
|
|
End Function
|
|
|
|
WScript.StdOut.Write PowerSet("1,2,3,4")
|