Reminder: The OEIS is hiring a new managing editor, and the application deadline is January 26.
%I #17 May 27 2024 15:43:17
%S 1,3,6,13,25,55,100,222,401,891,1602,3559,6428,14258,25647,56936,
%T 102860,228154,410339,910998,1645813,3650437,6565453,14576121,
%U 26332935,58407052,105047514,233217299,421327294,934513441,1680759539
%N Decimal form of binary integers produced by a modified version of Wolfram's Rule 30 one-dimensional cellular automaton.
%C According to the common nomenclature (see A110240), this is actually a Rule 86 for all but the least-significant bit, and a Rule 252 for the least-significant bit, because the (fractional) bits right from the binary dot are never set. As a side effect, the first 11 terms--not the 12th--can be reproduced by a(n)=floor(A110240(n)/2^n). [From _R. J. Mathar_, Apr 29 2009]
%D S. Wolfram, A New Kind of Science, Wolfram Media Inc., (2002), p. 27.
%F If b(n) is current binary digit, perform for each digit to get next integer in sequence: b(n) = (b(n)==0 && b(n+1)==0) ? b(n-1) : 1-b(n-1);//Wolfram's Rule 30*
%e a(4)=13 because a(3)=6=0110(binary) and applying Rule 30 to each digit [(b(n)==0 && b(n+1)==0) ? b(n-1) : 1-b(n-1)]
%o (Java)
%o /** Java class to generate sequence */
%o public class r30seqA { static String zero="0",one="1"; public static void main(String[] args) { int base10 = 1; System.out.println(base10); for(int i=0; i<30; i++) System.out.println(base10 = base10Convert(applyR30(Integer.toBinaryString(base10)))); }
%o static String applyR30(String base2) { int a0,a1,a2,newDigit; StringBuffer newBase2 = new StringBuffer(); for(int i=-1; i<base2.length(); i++){ if(i<1) a0=0; else a0=base2.substring(i-1,i).equals(zero)?0:1; if(i<0) a1=0; else a1=base2.substring(i,i+1).equals(zero)?0:1; if(i==base2.length()-1) a2=0; else a2=base2.substring(i+1,i+2).equals(zero)?0:1; newDigit = a1==0&&a2==0?a0:1-a0; //Wolfram's Rule 30 newBase2.append(newDigit==0?zero:one); } return newBase2.toString(); }
%o static int base10Convert(String R30) { int newBase10 = 0; for(int i=0; i<R30.length(); i++) if(!R30.substring(i,i+1).equals(zero)) newBase10 += powerOf2(R30.length()-i-1); return newBase10; }
%o static int powerOf2(int power) { int p = 1; for(int i=0; i<power; i++) p*=2; return p; } }
%Y Cf. A110240 for Rule 30.
%K base,nonn
%O 0,2
%A Jason E Sackett (jason(AT)heavyion.com), Sep 13 2002
%E Definition modified by _N. J. A. Sloane_, Jul 28 2014