|
|
A005150
|
|
Look and Say sequence: describe the previous term! (method A - initial term is 1).
(Formerly M4780)
|
|
150
|
|
|
1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, 31131211131221, 13211311123113112211, 11131221133112132113212221, 3113112221232112111312211312113211, 1321132132111213122112311311222113111221131221, 11131221131211131231121113112221121321132132211331222113112211, 311311222113111231131112132112311321322112111312211312111322212311322113212221
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,2
|
|
COMMENTS
|
Method A = "frequency" followed by "digit" -indication.
Also known as the "Say What You See" sequence.
All terms end with 1 (the seed) and, except the third a(3), begin with 1 or 3. -Jean-Christophe Hervé,May 07 2013
Proof that 333 never appears in any a(n): suppose it appears for the first time in a(n); because of "three 3" in 333, it would imply that 333 is also in a(n-1), which is a contradiction. -Jean-Christophe Hervé,May 09 2013
This sequence is called "suite de Conway" in French (see Wikipédia link). -Bernard Schott,Jan 10 2021
Contrary to many accounts (including an earlier comment on this page), Conway did not invent the sequence. The first mention of the sequence appears to date back to the 1977 International Mathematical Olympiad in Belgrave, Yugoslavia. See the Editor's note on page 4, directly preceding Conway's article in Eureka referenced below. -Harlan J. Brothers,May 03 2024
|
|
REFERENCES
|
S. R. Finch, Mathematical Constants, Cambridge, 2003, section 6.12 Conway's Constant, pp. 452-455.
M. Gilpin, On the generalized Gleichniszahlen-Reihe sequence, Manuscript, Jul 05 1994.
A. Lakhtakia and C. Pickover, Observations on the Gleichniszahlen-Reihe: An Unusual Number Theory Sequence, J. Recreational Math., 25 (No. 3, 1993), 192-198.
Clifford A. Pickover, Computers and the Imagination, St Martin's Press, NY, 1991.
Clifford A. Pickover, Fractal horizons: the future use of fractals, New York: St. Martin's Press, 1996. ISBN 0312125992. Chapter 7 has an extensive description of the elements and their properties.
C. A. Pickover, The Math Book, Sterling, NY, 2009; see p. 486.
N. J. A. Sloane and Simon Plouffe, The Encyclopedia of Integer Sequences, Academic Press, 1995 (includes this sequence).
James J. Tattersall, Elementary Number Theory in Nine Chapters, 1999, p. 23.
I. Vardi, Computational Recreations in Mathematica. Addison-Wesley, Redwood City, CA, 1991, p. 4.
|
|
LINKS
|
Ben Chen, Richard Chen, Joshua Guo, Tanya Khovanova, Shane Lee, Neil Malur, Nastia Polina, Poonam Sahoo, Anuj Sakarda, Nathan Sheffield, and Armaan Tipirneni,On Base 3/2 and its Sequences,arXiv:1808.04304 [math.NT], 2018.
M. Hilgemeier,Die Gleichniszahlen-Reihe,in Bild der Wissenschaft, 12 (1986), 194-195, with permission from the Konradin Medien GmbH.
M. Hilgemeier,One metaphor fits all,in Fractal Horizons, ed. C. A Pickover, St. Martins, NY, 1996, pp. 137-161.
Thomas Morrill,Look, Knave,arXiv:2004.06414 [math.CO], 2020.
Julia Witte Zimmerman, Denis Hudon, Kathryn Cramer, Jonathan St. Onge, Mikaela Fudolig, Milo Z. Trujillo, Christopher M. Danforth, and Peter Sheridan Dodds,A blind spot for large language models: Supradiegetic linguistic information,arXiv:2306.06794 [cs.CL], 2023.
|
|
FORMULA
|
|
|
EXAMPLE
|
The term after 1211 is obtained by saying "one 1, one 2, two 1's", which gives 111221.
|
|
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, 1 ][ [ n ] ]; Table[ FromDigits[ F[ n ] ], {n, 1, 15} ]
|
|
PROG
|
(Haskell)
import List
say:: Integer -> Integer
say = read. concatMap saygroup. group. show
where saygroup s = (show $ length s) ++ [head s]
look_and_say:: [Integer]
look_and_say = 1: map say look_and_say
-- Josh Triplett (josh(AT)freedesktop.org), Jan 03 2007
(Haskell)
a005150 = foldl1 (\v d -> 10 * v + d). map toInteger. a034002_row
(Java) See Paulo Ortolan link.
(Perl)
$str= "1"; for (1.. shift(@ARGV)) { print($str, "," ); @a = split(//, $str); $str= ""; $nd=shift(@a); while (defined($nd)) { $d=$nd; $cnt=0; while (defined($nd) && ($nd eq $d)) { $cnt++; $nd = shift(@a); } $str.= $cnt.$d; } } print($str);
# Jeff Quilici (jeff(AT)quilici.com), Aug 12 2003
(Perl)
# This outputs the first n elements of the sequence, where n is given on the command line.
$s = 1;
for (2..shift @ARGV) {
print "$s,";
$s =~ s/(.)\1*/(length $&).$1/eg;
}
# Arne 'Timwi' Heizmann (timwi(AT)gmx.net), Mar 12 2008
print "$s\n";
(Python)
p = "1"
seq = [1]
while (n > 1):
q = ''
idx = 0 # Index
l = len(p) # Length
while idx < l:
start = idx
idx = idx + 1
while idx < l and p[idx] == p[start]:
idx = idx + 1
q = q + str(idx-start) + p[start]
n, p = n - 1, q
seq.append(int(p))
return seq
# Olivier Mengue (dolmen(AT)users.sourceforge.net), Jul 01 2005
(Python)
seq = [1] + [None] * (n - 1) # allocate entire array space
def say(s):
acc = '' # initialize accumulator
while len(s) > 0:
i = 0
c = s[0] # char of first run
while (i < len(s) and s[i] == c): # scan first digit run
i += 1
acc += str(i) + c # append description of first run
if i == len(s):
break # done
else:
s = s[i:] # trim leading run of digits
return acc
for i in range(1, n):
seq[i] = int(say(str(seq[i-1])))
return seq
# E. Johnson (ejohnso9(AT)earthlink.net), Mar 31 2008
(Python)
# program without string operations
def sign(n): return cmp(n, 0)
def say(a):
r = 0
p = 0
while a > 0:
c = 3 - sign((a % 100) % 11) - sign((a % 1000) % 111)
r += (10 * c + (a % 10)) * 10**(2*p)
a /= 10**c
p += 1
return r
a = 1
for i in range(1, 26):
print(i, a)
a = say(a)
(Python)
import re
def lookandsay(limit, sequence = 1):
if limit > 1:
return lookandsay(limit-1, "".join([str(len(match.group()))+match.group()[0] for matchNum, match in enumerate(re.finditer(r "(\w)\1*", str(sequence)))]))
else:
return sequence
# lookandsay(3) --> 21
(Python)
import itertools
x = "1"
for i in range(20):
print(x)
x = ''.join(str(len(list(g)))+k for k, g in itertools.groupby(x))
(PARI)A005150(n, a=1)={ while(n--, my(c=1); for(j=2, #a=Vec(Str(a)), if( a[j-1]==a[j], a[j-1]= ""; c++, a[j-1]=Str(c, a[j-1]); c=1)); a[#a]=Str(c, a[#a]); a=concat(a)); a } \\M. F. Hasler,Jun 30 2011
|
|
CROSSREFS
|
Cf.A001155,A006751,A006715,A001140,A001141,A001143,A001145,A001151,A001154,A007651,A060857.
Apart from the first term, all terms are inA001637.
About primes:A079562(number of distinct prime factors),A100108(terms that are primes),A334132(smallest prime factor).
Cf.A014715(Conway's constant),A098097(terms interpreted as written in base 4).
|
|
KEYWORD
|
nonn,base,easy,nice
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|