%I #9 Feb 27 2021 15:03:33
%S 3,4,7,6,9,8,15,12,11,18,13,14,17,16,31,24,19,20,23,22,37,26,25,28,27,
%T 34,29,30,33,32,63,48,35,36,39,38,41,40,47,44,43,74,45,46,53,50,49,56,
%U 51,52,55,54,69,58,57,60,59,66,61,62,65,64,127,96,67,68
%N Next larger integer with same number of runs in binary expansion as n.
%C Number of runs in binary expansion is given by A005811.
%C This is a permutation of A107907.
%H Rémy Sigrist, <a href="/A341944/b341944.txt">Table of n, a(n) for n = 1..8191</a>
%H <a href="/index/Bi#binary">Index entries for sequences related to binary expansion of n</a>
%F A005811(a(n)) = A005811(n).
%F a(2^k-1) = 2^(k+1)-1 for any k > 0.
%e The first terms in decimal and in binary, alongside A005811(n), are:
%e n a(n) bin(n) bin(a(n)) A005811(n)
%e -- ---- ------ --------- ----------
%e 1 3 1 11 1
%e 2 4 10 100 2
%e 3 7 11 111 1
%e 4 6 100 110 2
%e 5 9 101 1001 3
%e 6 8 110 1000 2
%e 7 15 111 1111 1
%e 8 12 1000 1100 2
%e 9 11 1001 1011 3
%e 10 18 1010 10010 4
%e 11 13 1011 1101 3
%e 12 14 1100 1110 2
%o (PARI) a(n) = my (r=hammingweight(bitxor(n, n>>1))); for (k=n+1, oo, if (r==hammingweight(bitxor(k, k>>1)), return (k)))
%o (Python)
%o def runs(n): return bin(n^(n>>1)).count('1')
%o def a(n):
%o nruns, m = runs(n), n + 1
%o while runs(m) != nruns: m += 1
%o return m
%o print([a(n) for n in range(1, 67)]) # _Michael S. Branicky_, Feb 24 2021
%Y Cf. A000975, A005811, A057168, A107907.
%K nonn,base
%O 1,1
%A _Rémy Sigrist_, Feb 24 2021