Saluuuuuut,

> Here's how you can get an infinite loop in two lines with Permutation.
>
> sage: p =
> Permutation([(1,10,11,13,9,3,16,0,22),(8,2,15,18,24,26,20,21,4),(5,6,17,12,25,7,23,14,19)])
> sage: p.to_cycles()
>
> Of course it has to be because my permutation goes from 0 to n-1 while the
> code expects 1-n.
>
> It is all very nice. Now, if the code does not work, we should just refuse
> to build the corresponding permutations, and say it only works with
> integers. Otherwise it has to be fixed quicjky or all this code is totally
> useless.

An other nice feature
{{{
sage: Permutation([-1,1])
[-1, 1]
sage: Permutation([-1,1]).to_cycles()
[(1, -1, False)]
}}}

> By the way : is there any r&%$&$&$&%$ reason why Permutations (with a
> terminal s) does not contain Permutation object but LISTS ?
>
> sage: list(Permutations(["a","b","c"]))
> [['a', 'b', 'c'], ['a', 'c', 'b'], ['b', 'a', 'c'], ['b', 'c', 'a'], ['c',
> 'a', 'b'], ['c', 'b', 'a']]
> sage: map(type,list(Permutations(["a","b","c"])))
> [<type 'list'>, <type 'list'>, <type 'list'>, <type 'list'>, <type 'list'>,
> <type 'list'>]

Permutations are the possible permutations of a (multi)set and should
not be considered as bijection (as the permutations in the python
library itertools). In particular, the following does work
{{{
sage: Permutations('aabb').list()
[['a', 'a', 'b', 'b'], ['a', 'b', 'a', 'b'], ['a', 'b', 'b', 'a'],
['b', 'a', 'a', 'b'], ['b', 'a', 'b', 'a'], ['b', 'b', 'a', 'a']]
}}}
In particular, the parent Permutations does *not* contains
Permutation. A bit confusing, but I think that's it!

> I know, it would be slower otherwise. But it is bad code. This kind of
> things should be done with an optional flag if you need it.

+1

Cheeeeeers,
Vincent

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
To unsubscribe from this group, send email to 
sage-combinat-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sage-combinat-devel?hl=en.

Reply via email to