31 lines
850 B
Java
31 lines
850 B
Java
public class ElementaryCellularAutomatonRandomNumberGenerator {
|
|
|
|
public static void main(String[] aArgs) {
|
|
final int seed = 989898989;
|
|
evolve(seed, 30);
|
|
}
|
|
|
|
private static void evolve(int aState, int aRule) {
|
|
long state = aState;
|
|
for ( int i = 0; i <= 9; i++ ) {
|
|
int b = 0;
|
|
for ( int q = 7; q >= 0; q-- ) {
|
|
long stateCopy = state;
|
|
b |= ( stateCopy & 1 ) << q;
|
|
state = 0;
|
|
for ( int j = 0; j < BIT_COUNT; j++ ) {
|
|
long t = ( stateCopy >>> ( j - 1 ) ) | ( stateCopy << ( BIT_COUNT + 1 - j ) ) & 7;
|
|
if ( ( aRule & ( 1L << t ) ) != 0 ) {
|
|
state |= 1 << j;
|
|
}
|
|
}
|
|
}
|
|
System.out.print(" " + b);
|
|
}
|
|
System.out.println();
|
|
}
|
|
|
|
private static final int BIT_COUNT = 64;
|
|
|
|
}
|