|
|
A238845
|
|
Prefix overlap between binary expansions of n and n+1.
|
|
4
|
|
|
0, 1, 1, 1, 2, 1, 2, 1, 3, 2, 3, 1, 3, 2, 3, 1, 4, 3, 4, 2, 4, 3, 4, 1, 4, 3, 4, 2, 4, 3, 4, 1, 5, 4, 5, 3, 5, 4, 5, 2, 5, 4, 5, 3, 5, 4, 5, 1, 5, 4, 5, 3, 5, 4, 5, 2, 5, 4, 5, 3, 5, 4, 5, 1, 6, 5, 6, 4, 6, 5, 6, 3, 6, 5, 6, 4, 6, 5, 6, 2, 6, 5, 6, 4, 6, 5, 6, 3, 6, 5, 6
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
0,5
|
|
COMMENTS
|
The prefix overlap between two words is the length of their longest common prefix.
|
|
LINKS
|
|
|
FORMULA
|
|
|
EXAMPLE
|
8 = 1000 and 9 = 1001 have prefix overlap of 3, so a(8)=3.
|
|
MAPLE
|
# prefix overlap between n and n+1 in base b:
po:=proc(n, b) local t1, t2, l1, l2, c, L, i;
t1:=convert(n, base, b); l1:=nops(t1);
t2:=convert(n+1, base, b); l2:=nops(t2);
c:=0; L:=min(l1, l2);
for i from 1 to L do
if t1[l1+1-i] = t2[l2+1-i] then c:=c+1; else break; fi; od:
c;
end;
[seq(po(n, 2), n=0..120)];
|
|
MATHEMATICA
|
pol[n_]:=Module[{c1=IntegerDigits[n, 2], c2=IntegerDigits[n+1, 2]}, Total[ Split[ If[#[[1]]==#[[2]], 1, 0]&/@Thread[{c1, Take[c2, Length[c1]]}]][[1]]]]; Array[pol, 100, 0] (* Harvey P. Dale, Jun 12 2020 *)
|
|
PROG
|
(Haskell)
import Data.List (unfoldr); import Data.Tuple (swap)
a238845 n = length $ takeWhile (== 0) $ zipWith (-) (bin n) (bin (n+1))
where bin = reverse . unfoldr
(\x -> if x == 0 then Nothing else Just $ swap $ divMod x 2)
(PARI) a(n)=my(v=valuation(n+1, 2)); logint(n+1, 2) - v + (n+1==1<<v) - (n==0) ; \\ Charles R Greathouse IV, Dec 29 2017
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn,base
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|