Power set: Difference between revisions
Content added Content deleted
(Closed lang tag properly) |
(Added BBC BASIC) |
||
Line 162: | Line 162: | ||
} |
} |
||
MsgBox % RegExReplace(SubStr(t,1,StrLen(t)-1),",}","}")</lang> |
MsgBox % RegExReplace(SubStr(t,1,StrLen(t)-1),",}","}")</lang> |
||
=={{header|BBC BASIC}}== |
|||
The elements of a set are represented as the bits in an integer (hence the maximum size of set is 32). |
|||
<lang bbcbasic> DIM list$(3) : list$() = "1", "2", "3", "4" |
|||
PRINT FNpowerset(list$()) |
|||
END |
|||
DEF FNpowerset(list$()) |
|||
IF DIM(list$(),1) > 31 ERROR 100, "Set too large to represent as integer" |
|||
LOCAL i%, j%, s$ |
|||
s$ = "{" |
|||
FOR i% = 0 TO (2 << DIM(list$(),1)) - 1 |
|||
s$ += "{" |
|||
FOR j% = 0 TO DIM(list$(),1) |
|||
IF i% AND (1 << j%) s$ += list$(j%) + "," |
|||
NEXT |
|||
IF RIGHT$(s$) = "," s$ = LEFT$(s$) |
|||
s$ += "}," |
|||
NEXT i% |
|||
= LEFT$(s$) + "}"</lang> |
|||
'''Output:''' |
|||
<pre> |
|||
{{},{1},{2},{1,2},{3},{1,3},{2,3},{1,2,3},{4},{1,4},{2,4},{1,2,4},{3,4},{1,3,4},{2,3,4},{1,2,3,4}} |
|||
</pre> |
|||
=={{header|C}}== |
=={{header|C}}== |