login
The OEIS is supported by the many generous donors to the OEIS Foundation.

 

Logo
Hints
(Greetings from The On-Line Encyclopedia of Integer Sequences!)
A281150 Elias delta code for n. 6

%I #14 Mar 18 2019 22:07:19

%S 1,1000,1001,10100,10101,10110,10111,11000000,11000001,11000010,

%T 11000011,11000100,11000101,11000110,11000111,110010000,110010001,

%U 110010010,110010011,110010100,110010101,110010110,110010111,110011000,110011001,110011010

%N Elias delta code for n.

%C The number of bits in a(n) is equal to A140341(n).

%C a(n) is the prefix-free encoding of n-1 defined on pages 180-181 of Shallit (2008). - _N. J. A. Sloane_, Mar 18 2019

%D Shallit, Jeffrey. A second course in formal languages and automata theory. Cambridge University Press, 2008. See E(m) on page 181. - _N. J. A. Sloane_, Mar 18 2019

%H Indranil Ghosh, <a href="/A281150/b281150.txt">Table of n, a(n) for n = 1..10000</a>

%H J. Nelson Raja, P. Jaganathan and S. Domnic, <a href="http://dx.doi.org/10.17485/ijst/2015/v8i24/80242">A New Variable-Length Integer Code for Integer Representation and Its Application to Text Compression</a>, Indian Journal of Science and Technology, Vol 8(24), September 2015.

%F For a given integer n, a(n) is composed of two parts. The first part equals 1+floor(log_2 n) and the second part equals n-2^(floor(log_2 n)). The first part is stored in Elias Gamma Code and the second part is stored in a binary using floor(log_2 n) bits. The first and the second parts are concatenated to give a(n).

%e For n = 9, the first part is "11000" and the second part is "001". So a(9) = 11000001.

%o (Python)

%o def unary(n):

%o ....return "1"*(n-1)+"0"

%o def elias_gamma(n):

%o ....if n==1:

%o ........return "1"

%o ....k=int(math.log(n, 2))

%o ....fp=unary(1+k) #fp is the first part

%o ....sp=n-2**(k) #sp is the second part

%o ....nb=k #nb is the number of bits used to store sp in binary

%o ....sp=bin(sp)[2:]

%o ....if len(sp)<nb:

%o ........sp=("0"*(nb-len(sp)))+sp

%o ....return fp+sp

%o def elias_delta(n):

%o ....if n==1:

%o ........return "1"

%o ....k=int(math.log(n, 2))

%o ....fp=elias_gamma(1+k)#fp is the first part

%o ....sp=n-2**(k) #sp is the second part

%o ....nb=k #nb is the number of bits used to store sp in binary

%o ....sp=bin(sp)[2:]

%o ....if len(sp)<nb:

%o ........sp=("0"*(nb-len(sp)))+sp

%o ....return fp+sp

%Y Cf. A140341, A281149.

%Y Unary(n) = A105279(n-1).

%K nonn,base

%O 1,2

%A _Indranil Ghosh_, Jan 16 2017

Lookup | Welcome | Wiki | Register | Music | Plot 2 | Demos | Index | Browse | More | WebCam
Contribute new seq. or comment | Format | Style Sheet | Transforms | Superseeker | Recents
The OEIS Community | Maintained by The OEIS Foundation Inc.

License Agreements, Terms of Use, Privacy Policy. .

Last modified April 19 21:09 EDT 2024. Contains 371798 sequences. (Running on oeis4.)