Subsets
The power set of — every subset, as a lazy indexed family of .
✓ checked against that system · ! checked, with disagreements (hover a chip)Wikipedia
Power setMathWorldSubsetPowerSetWikidataQ205170Encyclopedia of MathematicsPower_setnLabpower setBritannicatopic/power-setOEISA000079✓A320487✓A011782✓A131577✓A034008✓A166444✓Wolfram LanguageSubsets✓SageMathSubsets(n)✓SymPysubsetsmathlib4Finset (Fin n)Rosetta CodePower setSubsets(n)the subsets of .Combinatorica
Subsets[If[ListQ[n], n, Range[n]]]Subsets(collection)the subsets of any finite collection.Combinatorica
Subsets[If[ListQ[collection], collection, Range[collection]]]Subsets(f(a, b, …))for any other head, its operands are the elements and each subset is built under the same head, as in .Subsets(n, k)the subsets of of size at most .Subsets(n, {k})the subsets of of size exactly .Subsets(n, {kmin, kmax, dn})the subsets of with size in up to ; defaults to .Typed signatures
| Type | Package | Applies |
|---|---|---|
(collection<any> | expression | integer, (integer | list<integer>)?) -> indexed_collection<finset> | list<finset | list<any>> | combinatorics | always |
Details
Definition
Epsil, as the implementation runs it.
count(_n)
Fold(
Function(gc + (Binomial(_n, gn) if True else 0), gc, gn),
0,
Range(0, _n, 1),
)unrank(_n, _r)
Apply(
(gp: list<integer>) => Apply(
(gm: list<integer>) => gm,
Rest(Fold(
Function(Apply(
(lc: list<integer>) => Join([lc[1]], Rest(ls_g), [lc[2]]),
Fold(
Function(
lp_g if lp_g[2] != 0 ||
lv_g <=
(0 if lj_g == 1 else ls_g[lj_g]) else [lp_g[1], lv_g] if lp_g[1] <
Binomial(_n - lv_g, gp[2] - lj_g) else [lp_g[1] -
Binomial(_n - lv_g, gp[2] - lj_g), 0],
lp_g,
lv_g,
),
[
ls_g[1],
0,
],
Range(
1,
_n,
1,
),
),
), ls_g, lj_g),
[gp[1]],
Range(1, gp[2], 1),
)),
),
Fold(
Function(gs if gs[2] >= 0 else [gs[1], gk] if gs[1] <
(Binomial(_n, gk) if True else 0) else [gs[1] -
(Binomial(
_n,
gk,
) if True else 0), -1], gs, gk),
[_r, -1],
Range(0, _n, 1),
),
)rank(_n, _x)
Apply((gy: list<integer>) => Fold(
Function(gb +
(Binomial(_n, gt) if True else 0), gb, gt),
0,
Range(0, Length(_x) - 1, 1),
) + Fold(
Function(kr + Fold(
Function(kq +
Binomial(
_n - kv,
Length(_x) - kj,
), kq, kv),
0,
Range((0 if kj ==
1 else gy[kj - 1]) +
1, gy[kj] - 1, 1),
), kr, kj),
0,
Range(1, Length(_x), 1),
), Apply(
(gx: list<integer>) => gx,
Sort(_x),
))valid(_n, _x)
Fold(Function(
(ReplaceAt(dm_seen, _x[dm_j], 1) if dm_seen[_x[dm_j]] == 0 else ReplaceAt(
dm_seen,
_n + 1,
1,
)) if 1 <= _x[dm_j] &&
_x[dm_j] <= _n else ReplaceAt(dm_seen, _n + 1, 1),
dm_seen,
dm_j,
), Map(Function(0, dm_z), Range(1, _n + 1, 1)), Range(
1,
Length(_x),
1,
))[_n + 1] == 0 &&
TrueMaps
Into and out of Finset, called as CombinatorialMap(x, "Name"). Properties are the laws we state and what FindStat records.
From Finset
- BinaryWordFinset → BinaryWordinverseA subset of 1..n as its characteristic word: letter i is 1 when i is a member.
To Finset
- DescentSetPermutation → FinsetThe positions where the word falls.
- FinsetBinaryWord → FinsetinverseThe subset of 1..m a binary word of length m marks: the positions holding 1.
- PeakSetPermutation → FinsetThe interior positions that rise then fall.
- PermutahedronVertexPermutation → FinsetThe vertex (σ(1), …, σ(n)), or its Loday point, is an ordered tuple of coordinates, while
finsetis an unordered set of positions (the carrier DescentSet and PeakSet use). Reordering the coordinates gives a different vertex but the same finset, so the map would not be injective. Afinset-valued PermutahedronVertex is a type mismatch, not a gap to close.
Enumeration
Examples
About
| Examples | 20 |
|---|---|
| Checked against | Wolfram Language 20 agreeCombinatorica 8 agree1 differSageMath 1 agreeSymPy 1 agreemathlib4 1 agree |
| Crosswalk | WikipediaMathWorld ×2WikidataEncyclopedia of MathematicsnLabBritannicaOEIS ×6Wolfram LanguageCombinatoricaSageMathSymPymathlib4Rosetta Code |
Implementation
mapped
combinatoricapackages/oracle/src/mappings.tsSubsets of 1..n, or of a list, by size and then lexicographically.
See also: Binomial, Length, Count, At, KSubsets, Multisets, Tuples