|
|
A177062
|
|
Length of the longest common substring in binary representations of n and n^2.
|
|
2
|
|
|
1, 2, 1, 3, 2, 2, 2, 4, 3, 3, 2, 3, 3, 3, 3, 5, 4, 4, 4, 4, 3, 3, 2, 4, 4, 4, 5, 4, 4, 4, 4, 6, 5, 5, 4, 5, 4, 4, 4, 5, 6, 3, 3, 4, 4, 2, 3, 5, 5, 4, 4, 5, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 6, 6, 5, 6, 5, 5, 5, 6, 5, 5, 5, 4, 4, 4, 4
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,2
|
|
LINKS
|
|
|
MAPLE
|
f:= n -> length(StringTools:-LongestCommonSubString(convert(convert(n, binary), string), convert(convert(n^2, binary), string))):
|
|
MATHEMATICA
|
longestRun[pairs_] := Split[pairs, Equal @@ #1 && Equal @@ #2 &] // Sort[#, Length[#1] < Length[#2] &] & // Last; a[n_] := (bits1 = IntegerDigits[n, 2]; bits2 = IntegerDigits[n^2, 2]; longestRun /@ ListConvolve[ Reverse[bits1], bits2, {1, -1}, -1, List, List] // Sort[#, Length[#1] < Length[#2] &] & // Last // Length); a /@ Range[79] (* Jean-François Alcover, Jun 05 2013 *)
Table[Length[LongestCommonSubsequence[IntegerDigits[n^2, 2], IntegerDigits[ n, 2]]], {n, 1, 100}] (* Vladimir Reshetnikov, Apr 26 2016 *)
|
|
PROG
|
(Haskell)
import Data.List
toBinary 0 = []
toBinary n = toBinary (n `div` 2) ++ [odd n]
lcstr xs ys = maximum . concat $ [f xs' ys | xs' <- tails xs] ++ [f xs ys' | ys' <- drop 1 $ tails ys] where f xs ys = scanl g 0 $ zip xs ys; g z (x, y) = if x == y then z + 1 else 0
a = [lcstr (toBinary $ n) (toBinary $ n^2) | n <- [1..]]
|
|
CROSSREFS
|
|
|
KEYWORD
|
base,easy,nonn
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|