Department of Computer Science | Institute of Theoretical Computer Science | CADMO

Theory of Combinatorial Algorithms

Prof. Emo Welzl and Prof. Bernd Gärtner

/* * Name: Chains * Author: Andreas J. Weiss * Date: 15.11.2013 * Description: * Lindenmayer system with 3 words. * Use 10 to 15 iterations, 13 is optimal. */ #include #include #include #define FORWARD ifm::forward(); #define LEFT(A) ifm::left(A); #define RIGHT(A) ifm::right(A); // Prototypes void A(unsigned int i); void B(unsigned int i); void C(unsigned int i); void A(unsigned int i) { if( i <= 0 ) return; A(i - 1); FORWARD C(i - 1); FORWARD B(i - 1); FORWARD A(i - 1); } void B(unsigned int i) { if( i <= 0) return; A(i - 1); LEFT(60) B(i - 1); } void C(unsigned int i) { if( i <= 0) return; B(i - 1); A(i - 1); RIGHT(60) } int main (int argc, char **argv) { // Allow the iteration count to be passed as an argument if(argc == 2) { std::cout << "Number of iterations = " << atoi(argv[1]) << "\n"; A(atoi(argv[1])); } else { std::cout << "Number of iterations =? "; unsigned int n; std::cin >> n; A(n); } return 0; }