cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A258055 Concatenation of the decimal representations of the lengths (increased by 1) of the runs of zeros between successive ones in the binary representation of n.

Original entry on oeis.org

0, 0, 0, 1, 0, 2, 1, 11, 0, 3, 2, 21, 1, 12, 11, 111, 0, 4, 3, 31, 2, 22, 21, 211, 1, 13, 12, 121, 11, 112, 111, 1111, 0, 5, 4, 41, 3, 32, 31, 311, 2, 23, 22, 221, 21, 212, 211, 2111, 1, 14, 13, 131, 12, 122, 121, 1211, 11, 113, 112, 1121, 111, 1112, 1111
Offset: 0

Views

Author

Armands Strazds, May 17 2015

Keywords

Comments

Originally called the "Golden Book's ZI-sequence" by the author.
The ZI-sequence is related to the binary numbers sequence with 10 ^ n substituted by the respective exponent increased by 1 (i.e., 10 as 2, 100 as 3, etc.) and the least significant bit discarded, e.g., binary 1011 converts to ZI 21.
a(n) = 0 when no successive ones exist in the binary representation of n, i.e., when n=0 and when n is a power of 2. - Giovanni Resta, Aug 31 2015

Examples

			Example for n=6: binary 110 => split into 10^m components: 1 (10^0) and 10 (10^1) => 1; the least significant bit, and thus the whole last component, here 10, is discarded.
840 in binary is 1100101000. The runs of zeros between successive ones have length 0, 2 and 1, hence a(840) = 132. - _Giovanni Resta_, Aug 31 2015
		

Crossrefs

Cf. A248646, A256494. See also A261300 for another version.

Programs

  • Mathematica
    a[0] = 0; a[n_] := FromDigits@ Flatten[ IntegerDigits /@ Most[ Length /@ (Split[ Flatten[ IntegerDigits[n, 2] /. 1 -> {1, 0}]][[2 ;; ;; 2]]) ]]; Table[a@ n, {n, 0, 100}] (* Giovanni Resta, Aug 31 2015 *)
  • PHP
    function dec2zi ($d) {
    $b = base_convert($d, 10, 2); $b = str_split($b);
    $i = $z = 0; $r = "";
    foreach($b as $v) {
    if (!$v) {
    $i++;
    } else {
    if ($i > 0) {
    $r .= $i + $v; $i = 0;
    } else {
    if ($z > 0) {
    $r .= $v; $z = 0;
    }
    $z++; }}}
    return $r == "" ? 0 : $r; }