login
A continuous "Look and Say" sequence (without repetition, method 2).
14

%I #44 Apr 18 2021 02:16:10

%S 1,1,1,2,1,1,2,2,1,2,2,1,1,2,2,2,1,3,2,1,1,1,3,1,2,3,1,1,3,1,1,1,2,1,

%T 3,2,1,1,3,3,1,1,2,1,1,1,3,1,2,2,1,2,3,2,1,1,2,3,1,1,3,1,1,2,2,1,1,1,

%U 2,1,3,1,2,2,1,1,2,1,3,2,1,1,3,2,1,2,2

%N A continuous "Look and Say" sequence (without repetition, method 2).

%C A variant of Conway's 'Look-and-Say' sequence A005150, without run cut-off. It describes at each step the preceding digits taken altogether.

%C There are different optional rules to build such a sequence. This method 2 does not consider already said digits.

%C As in the original Look-and-Say sequence, a(n) is always equal to 1, 2 or 3. The subsequence 3,3,3 never appears.

%C The sequence is determined by pairs of digits. Terms of even rank are counts while terms of odd rank are figures.

%H J.-C. Hervé, <a href="/A221646/b221646.txt">Table of n, a(n) for n = 1..10000</a>

%e a(1) = 1, then a(2) = 1 and a(3) = 1 (one 1). Leaving out the first 1 already said, we now have two 1's, then a(4) = 2 and a(5) = 1, and then a(6) = 1, a(7) = 2, a(8) = 2, a(9) = 1, etc.

%t n = 100; a[0] = 1; see = say = 0; While[say < n - 1, c = 0; dg = a[see]; While[see <= say, If[a[see] == dg, c += 1, Break[]]; see += 1]; a[++say] = c; If[say < n - 1, a[++say] = dg]]; Array[a, n, 0] (* _Jean-François Alcover_, Jul 11 2013, translated and adapted from J.-C. Hervé's C program *)

%o (C) /* computes first n terms in array a[] */

%o int *swys(int n) {

%o int a[n] ;

%o int see, say, c ;

%o a[0] = 1;

%o see = say = 0 ;

%o while( say < n-1 ) {

%o c = 0 ; /* count */

%o dg = a[see] /* digit */

%o while (see <= say) {

%o if (a[see]== dg) c += 1 ;

%o else break ;

%o see += 1 ;

%o }

%o a[++say] = c ;

%o if (say < n-1) a[++say] = dg ;

%o }

%o return(a);

%o }

%Y Cf. A005150 (original look-and-say sequence).

%Y Cf. A225212, A225224 (other continuous variants).

%K nonn,easy

%O 1,4

%A _Jean-Christophe Hervé_, May 05 2013