Module: sage.combinat.subset
Subsets
Module-level Functions
| s, [k=None]) |
Returns the combinatorial class of subsets of s.
If s is a non-negative integer, it returns the subsets of range(1,s+1).
If k is specified, it returns the subsets of s of size k.
sage: S = Subsets([1,2,3]); S
Subsets of {1, 2, 3}
sage: S.count()
8
sage: S.first()
{}
sage: S.last()
{1, 2, 3}
sage: S.random_element()
{2}
sage: S.list()
[{}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}]
sage: S = Subsets(3)
sage: S.list()
[{}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}]
sage: S = Subsets(3,2); S
Subsets of {1, 2, 3} of size 2
sage: S.list()
[{1, 2}, {1, 3}, {2, 3}]
Class: Subsets_s
| self, s) |
TESTS:
sage: S = Subsets([1,2,3]) sage: S == loads(dumps(S)) True
Functions: count,
first,
iterator,
last,
random_element,
rank,
unrank
| self) |
Returns the number of subsets of the set s.
This is given by
.
sage: Subsets(Set([1,2,3])).count() 8 sage: Subsets([1,2,3,3]).count() 8 sage: Subsets(3).count() 8
| self) |
Returns the first subset of s. Since we aren't restricted to subsets of a certain size, this is always the empty set.
sage: Subsets([1,2,3]).first()
{}
sage: Subsets(3).first()
{}
| self) |
An iterator for all the subsets of s.
sage: [sub for sub in Subsets(Set([1,2,3]))]
[{}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}]
sage: [sub for sub in Subsets([1,2,3,3])]
[{}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}]
sage: [sub for sub in Subsets(3)]
[{}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}]
| self) |
Returns the last subset of s. Since we aren't restricted to subsets of a certain size, this is always the set s itself.
sage: Subsets([1,2,3]).last()
{1, 2, 3}
sage: Subsets(3).last()
{1, 2, 3}
| self) |
Returns a random element of the class of subsets of s (in other words, a random subset of s).
sage: Subsets(3).random_element()
{2}
sage: Subsets([4,5,6]).random_element()
{5}
| self, sub) |
Returns the rank of sub as a subset of s.
sage: Subsets(3).rank([]) 0 sage: Subsets(3).rank([1,2]) 4 sage: Subsets(3).rank([1,2,3]) 7 sage: Subsets(3).rank([2,3,4]) == None True
| self, r) |
Returns the subset of s that has rank k.
sage: Subsets(3).unrank(0)
{}
sage: Subsets([2,4,5]).unrank(1)
{2}
sage: s = Subsets([2,4,5])
Special Functions: __init__,
__repr__
| self) |
TESTS:
sage: repr(Subsets([1,2,3]))
'Subsets of {1, 2, 3}'
Class: Subsets_sk
| self, s, k) |
TESTS:
sage: S = Subsets(3,2) sage: S == loads(dumps(S)) True
Functions: count,
first,
iterator,
last,
random_element,
rank,
unrank
| self) |
sage: Subsets([1,2,3,3], 2).count() 3 sage: Subsets(Set([1,2,3]), 2).count() 3 sage: Subsets([1,2,3], 1).count() 3 sage: Subsets([1,2,3], 3).count() 1 sage: Subsets([1,2,3], 0).count() 1 sage: Subsets([1,2,3], 4).count() 0 sage: Subsets(3,2).count() 3 sage: Subsets(3,4).count() 0
| self) |
Returns the first subset of s of size k.
sage: Subsets(Set([1,2,3]), 2).first()
{1, 2}
sage: Subsets([1,2,3,3], 2).first()
{1, 2}
sage: Subsets(3,2).first()
{1, 2}
sage: Subsets(3,4).first()
| self) |
An iterator for all the subsets of s of size k.
sage: [sub for sub in Subsets(Set([1,2,3]), 2)]
[{1, 2}, {1, 3}, {2, 3}]
sage: [sub for sub in Subsets([1,2,3,3], 2)]
[{1, 2}, {1, 3}, {2, 3}]
sage: [sub for sub in Subsets(3,2)]
[{1, 2}, {1, 3}, {2, 3}]
| self) |
Returns the last subset of s of size k.
sage: Subsets(Set([1,2,3]), 2).last()
{2, 3}
sage: Subsets([1,2,3,3], 2).last()
{2, 3}
sage: Subsets(3,2).last()
{2, 3}
sage: Subsets(3,4).last()
| self) |
Returns a random element of the class of subsets of s of size k (in other words, a random subset of s of size k).
sage: Subsets(3, 2).random_element()
{1, 2}
sage: Subsets(3,4).random_element() is None
True
| self, sub) |
Returns the rank of sub as a subset of s of size k.
sage: Subsets(3,2).rank([1,2]) 0 sage: Subsets([2,3,4],2).rank([3,4]) 2 sage: Subsets([2,3,4],2).rank([2]) sage: Subsets([2,3,4],4).rank([2,3,4,5])
| self, r) |
Returns the subset of s that has rank k.
sage: Subsets(3,2).unrank(0)
{1, 2}
sage: Subsets([2,4,5],2).unrank(0)
{2, 4}
Special Functions: __init__,
__repr__
| self) |
TESTS:
sage: repr(Subsets(3,2))
'Subsets of {1, 2, 3} of size 2'