login
Permutation of natural numbers: rotations of non-crossing handshakes encoded by A014486 (to opposite direction of A057501).
30

%I #9 Mar 14 2015 14:07:21

%S 0,1,3,2,7,6,8,4,5,17,16,18,14,15,20,19,21,9,10,22,11,12,13,45,44,46,

%T 42,43,48,47,49,37,38,50,39,40,41,54,53,55,51,52,57,56,58,23,24,59,25,

%U 26,27,61,60,62,28,29,63,30,31,32,64,33,34,35,36,129,128,130,126,127

%N Permutation of natural numbers: rotations of non-crossing handshakes encoded by A014486 (to opposite direction of A057501).

%C In A057501 and A057502, the cycles between (A014138(n-1)+1)-th and (A014138(n))-th term partition A000108(n) objects encoded by the corresponding terms of A014486 into A002995(n+1) equivalence classes of planar trees, thus the latter sequence can be produced also with Maple procedure RotHandshakesPermutationCycleCounts given below.

%H <a href="/index/Per#IntegerPermutation">Index entries for sequences that are permutations of the natural numbers</a>

%H A. Karttunen, <a href="http://www.iki.fi/~kartturi/matikka/Nekomorphisms/gatomorf.htm">Gatomorphisms</a> (Includes the complete Scheme program for computing this sequence)

%p map(CatalanRankGlobal,map(RotateHandshakesR, A014486));

%p RotateHandshakesR := n -> pars2binexp(deepreverse(RotateHandshakesP(deepreverse(binexp2pars(n)))));

%p deepreverse := proc(a) if 0 = nops(a) or list <> whattype(a) then (a) else [op(deepreverse(cdr(a))), deepreverse(a[1])]; fi; end;

%p with(group); CountCycles := b -> (nops(convert(b,'disjcyc')) + (nops(b)-convert(map(nops,convert(b,'disjcyc')),`+`)));

%p RotHandshakesPermutationCycleCounts := proc(upto_n) local u,n,a,r,b; a := []; for n from 0 to upto_n do b := []; u := (binomial(2*n,n)/(n+1)); for r from 0 to u-1 do b := [op(b),1+CatalanRank(n,RotateHandshakes(CatalanUnrank(n,r)))]; od; a := [op(a),CountCycles(b)]; od; RETURN(a); end;

%p # For other procedures, follow A057501.

%o (Scheme function implementing this automorphism on list-structures:) (define (RotateHandshakesInv! s) (cond ((not (pair? s))) ((not (pair? (cdr s))) (swap! s)) (else (RotateHandshakesInv! (cdr s)) (robl! s))) s)

%o (define (robl! s) (let ((ex-car (car s))) (set-car! s (cddr s)) (set-cdr! (cdr s) ex-car) (swap! (cdr s)) (swap! s) s))

%o (define (swap! s) (let ((ex-car (car s))) (set-car! s (cdr s)) (set-cdr! s ex-car) s))

%Y Inverse of A057501 and the car/cdr-flipped conjugate of A069774, i.e. A057502(n) = A057163(A069774(A057163(n))). Cf. also A057507, A057510, A057513, A069771, A069772.

%K nonn

%O 0,3

%A _Antti Karttunen_, Sep 03 2000