|
|
A060109
|
|
Numbers in Morse code, with 1 for a dot, 2 for a dash and 0 between digits/letters.
|
|
11
|
|
|
22222, 12222, 11222, 11122, 11112, 11111, 21111, 22111, 22211, 22221, 12222022222, 12222012222, 12222011222, 12222011122, 12222011112, 12222011111, 12222021111, 12222022111, 12222022211, 12222022221, 11222022222, 11222012222, 11222011222, 11222011122, 11222011112, 11222011111
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
0,1
|
|
LINKS
|
|
|
FORMULA
|
a(n) A007089(A060110(n)) = a(floor(n/10))*10^6 + a(n%10) for n > 9 and a(n) = 33333 - a(n-5) for n%10 > 4, where % is the modulo (remainder) operator. - M. F. Hasler, Jun 22 2020
|
|
EXAMPLE
|
a(10) = 12222022222 since 1 is ".----" and 0 is "-----".
|
|
MATHEMATICA
|
With[{a = Association@ Array[# -> If[# < 6, PadRight[ConstantArray[1, #], 5, 2], PadRight[ConstantArray[2, # - 5], 5, 1]] &, 10, 0]}, Array[FromDigits@ Flatten@ Riffle[Map[Lookup[a, #] &, IntegerDigits[#]], 0] &, 25]] (* Michael De Vlieger, Nov 02 2020 *)
|
|
PROG
|
(Haskell)
import Data.List (inits, tails)
a060109 n = if n == 0 then 22222 else read (conv n) :: Integer where
conv 0 = []
conv x = conv x' ++ mCode !! d where (x', d) = divMod x 10
mCode = map ('0' :) (mc ++ (reverse $ init $ tail $ map reverse mc))
mc = zipWith (++) (inits "111111") (tails "22222")
(PARI) apply( {A060109(n)=if(n>9, self()(n\10)*10^6)+fromdigits([1+(abs(k-n%10)>2)|k<-[3..7]])}, [0..39]) \\ M. F. Hasler, Jun 22 2020
|
|
CROSSREFS
|
Cf. A059852 (Morse code for letters), A008777 (number of dots and dashes).
Cf. A060110 (these base-3 numbers converted to decimal), A321332 (duration of the code for n).
|
|
KEYWORD
|
base,nonn
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|