%I #57 Nov 04 2024 18:35:05
%S 0,1,2,3,5,4,6,7,10,11,9,8,13,12,14,15,21,20,22,23,18,19,17,16,26,27,
%T 25,24,29,28,30,31,42,43,41,40,45,44,46,47,37,36,38,39,34,35,33,32,53,
%U 52,54,55,50,51,49,48,58,59,57,56,61,60,62,63,85,84,86,87,82,83,81,80,90
%N a(0)=0, a(1)=1; for n > 1, a(n) = 2*m + 1 - (n mod 2 + m mod 2) mod 2, where m = a(floor(n/2)).
%C Permutation of the natural numbers with inverse A180201;
%C A180198(n) = a(a(n));
%C a(A180199(n)) = A180199(a(n)) = A180201(n);
%C a(A075427(n)) = A075427(n).
%C This permutation transforms the enumeration system of positive irreducible fractions A007305/A047679 (Stern-Brocot) into the enumeration system A245325/A245326, and enumeration system A162909/A162910 (Bird) into A071766/A229742 (HCS). - _Yosu Yurramendi_, Jun 09 2015
%H Reinhard Zumkeller, <a href="/A180200/b180200.txt">Table of n, a(n) for n = 0..1023</a>
%H <a href="/index/Per#IntegerPermutation">Index entries for sequences that are permutations of the natural numbers</a>
%F a(n) = A233279(A258746(n)) = A117120(A233279(n)), n > 0. - _Yosu Yurramendi_, Apr 10 2017
%F a(0) = 0, a(1) = 1, for n > 0 a(2*n) = 2*a(n) + [a(n) even], a(2*n + 1) = 2*a(n) + [a(n) odd]. - _Yosu Yurramendi_, May 23 2020
%F a(n) = A054429(A154435(n)) = A006068(A054429(n)), n > 0. - _Yosu Yurramendi_, Jun 05 2021
%p a:= proc(n) option remember; `if`(n<2, n, (m->
%p 2*m+1-irem(m+n, 2))(a(iquo(n, 2))))
%p end:
%p seq(a(n), n=0..72); # _Alois P. Heinz_, May 29 2021
%t a[0] = 0; a[1] = 1; a[n_] := a[n] = 2 # + 1 - Mod[Mod[n, 2] + Mod[#, 2], 2] &@ a[Floor[n/2]]; Table[a@ n, {n, 0, 72}] (* _Michael De Vlieger_, Apr 02 2017 *)
%o (PARI) a(n) = if(n<2, n, my(m=a(n\2)); 2*m + 1 - (n%2 + m%2)%2); \\ _Indranil Ghosh_, Apr 05 2017
%o (Python)
%o def a(n):
%o if n<2:return n
%o else:
%o m=a(n//2)
%o return 2*m + 1 - (n%2 + m%2)%2 # _Indranil Ghosh_, Apr 05 2017
%o (C)
%o #include <stdio.h>
%o int a(int n){
%o int m;
%o if (n<2){return n;}
%o else{
%o m=a(n/2);
%o return 2*m + 1 - (n%2 + m%2)%2;
%o }
%o }
%o int main()
%o {
%o int n=0;
%o for(; n<=100; n++)
%o printf("%d, ", a(n));
%o return 0;
%o } /* _Indranil Ghosh_, Apr 05 2017 */
%o (R)
%o maxn <- 63 # by choice
%o a <- 1
%o for(n in 1:maxn){
%o a[2*n ] <- 2*a[n] + (a[n]%%2 == 0)
%o a[2*n+1] <- 2*a[n] + (a[n]%%2 != 0)}
%o a <- c(0,a)
%o # _Yosu Yurramendi_, May 23 2020
%Y Cf. A006068, A054429, A154435.
%K nonn,look
%O 0,3
%A _Reinhard Zumkeller_, Aug 15 2010
%E Name edited by _Jon E. Schoenfield_, Apr 05 2017