#17548: Partitions() is buggy
---------------------------------+---------------------------
Reporter: ferriszorro | Owner: ferriszorro
Type: defect | Status: needs_work
Priority: minor | Milestone: sage-6.5
Component: combinatorics | Resolution:
Keywords: Partitions | Merged in:
Authors: | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Commit:
Dependencies: | Stopgaps: #17637
---------------------------------+---------------------------
Comment (by tscrim):
Replying to [comment:25 vdelecroix]:
> 1. Depending on the input, the floor is sometimes `0` and sometimes `1`:
> {{{
> #!python
> sage: IntegerListsLex(5, length=3).list() # ok: it is 0
> [[5, 0, 0],
> [4, 1, 0],
> [4, 0, 1],
> ...
> [0, 2, 3],
> [0, 1, 4],
> [0, 0, 5]]
> sage: IntegerListsLex(5, length=3, max_slope=0).list() # ok: it is 0
> [[5, 0, 0], [4, 1, 0], [3, 2, 0], [3, 1, 1], [2, 2, 1]]
> sage: IntegerListsLex(5, max_slope=0).list() # now it is 1
> [[5], [4, 1], [3, 2], [3, 1, 1], [2, 2, 1], [2, 1, 1, 1], [1, 1, 1, 1,
1]]
> }}}
This is not a bug because this has trailing 0's and there is no way to
have a non-trailing 0 in the last output. See this part of the
documentation:
{{{
Two valid integer lists are considered equivalent if they only
differ by trailing zeroes. In this case, only the list with the
least number of trailing zeroes will be produced.
}}}
It's subtle, but again, not a bug.
> 2. The iterator is sometimes completely wrong when the set is infinite:
> {{{
> #!python
> sage: it = iter(IntegerListsLex(5))
> sage: for _ in range(10): print it.next()
> [5]
> [4, 1]
> [4, 0, 1]
> [4, 0, 0, 1]
> [4, 0, 0, 0, 1]
> [4, 0, 0, 0, 0, 1]
> [4, 0, 0, 0, 0, 0, 1]
> [4, 0, 0, 0, 0, 0, 0, 1]
> [4, 0, 0, 0, 0, 0, 0, 0, 1]
> [4, 0, 0, 0, 0, 0, 0, 0, 0, 1]
> }}}
This is also not a bug because there are no other conditions on the lists
and each of these are the next in lex ordering.
--
Ticket URL: <http://trac.sagemath.org/ticket/17548#comment:27>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.