|
|
A006751
|
|
Describe the previous term! (method A - initial term is 2).
(Formerly M2052)
|
|
29
|
|
|
2, 12, 1112, 3112, 132112, 1113122112, 311311222112, 13211321322112, 1113122113121113222112, 31131122211311123113322112, 132113213221133112132123222112, 11131221131211132221232112111312111213322112, 31131122211311123113321112131221123113111231121123222112
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,1
|
|
COMMENTS
|
Method A = 'frequency' followed by 'digit'-indication.
No digit exceeds 3. If the starting number a(1) is a single-digit number greater than 3 this will remain as the last digit, all the remaining in any term being no greater than 3. - Carmine Suriano, Sep 07 2010
This is because for all n > 1, a(n) begins with 1 or 3 and ends with 2. - Jean-Christophe Hervé, May 07 2013
a(n+1) - a(n) is divisible by 10^5 for n > 5. - Altug Alkan, Dec 04 2015
|
|
REFERENCES
|
S. R. Finch, Mathematical Constants, Cambridge, 2003, pp. 452-455.
N. J. A. Sloane and Simon Plouffe, The Encyclopedia of Integer Sequences, Academic Press, 1995 (includes this sequence).
I. Vardi, Computational Recreations in Mathematica. Addison-Wesley, Redwood City, CA, 1991, p. 4.
|
|
LINKS
|
|
|
FORMULA
|
|
|
EXAMPLE
|
E.g. the term after 3112 is obtained by saying "one 3, two 1's, one 2", which gives 132112.
|
|
MATHEMATICA
|
RunLengthEncode[ x_List ] := (Through[ {First, Length}[ #1 ] ] &) /@ Split[ x ]; LookAndSay[ n_, d_:1 ] := NestList[ Flatten[ Reverse /@ RunLengthEncode[ # ] ] &, {d}, n - 1 ]; F[ n_ ] := LookAndSay[ n, 2 ][ [ n ] ]; Table[ FromDigits[ F[ n ] ], {n, 11} ] (* Zerinvary Lajos, Mar 21 2007 *)
|
|
PROG
|
(Haskell)
a006751 = foldl1 (\v d -> 10 * v + d) . map toInteger . a088203_row
(Perl)
# This outputs the first n elements of the sequence, where n is given on the command line.
$s = 2;
for (2..shift @ARGV) {
print "$s, ";
$s =~ s/(.)\1*/(length $&).$1/eg;
}
print "$s\n";
## Arne 'Timwi' Heizmann (timwi(AT)gmx.net), Mar 12 2008)
(Python)
l=[2]
n=s=1
y=''
while n<21:
x=str(l[n - 1]) + ' '
for i in range(len(x) - 1):
if x[i]==x[i + 1]: s+=1
else:
y+=str(s)+str(x[i])
s=1
x=''
n+=1
l.append(int(y))
y=''
s=1
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn,base,easy,nice
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|