From b26eb3413979ddf8a676b604401f9853d5a342bc Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Wed, 11 Jul 2018 12:57:18 -0700 Subject: Rename to anonco --- anonco/README.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 anonco/README.md (limited to 'anonco/README.md') diff --git a/anonco/README.md b/anonco/README.md new file mode 100644 index 0000000..d97846e --- /dev/null +++ b/anonco/README.md @@ -0,0 +1,35 @@ +We're going to simulate "Rule 110", which is essentially a way of turning one +string of bits into another string of bits. (You won't need any background +knowledge to complete the problem, but if you're curious, check out +https://en.wikipedia.org/wiki/Rule_110) + +The program should take one argument N on the command line, and should then +display a possibly-infinite sequence of rows of N digits each. A digit may be +either zero or one. + +Create the first row randomly. Then, to construct the digit at position x of row +y, consider the digits at positions (x-1), x, and (x+1) of row (y-1), and select +the new digit according to the following table: + +| Pattern | New Digit for Center Cell | +| ------- | ------------------------- | +| 111 | 0 | +| 110 | 1 | +| 101 | 1 | +| 100 | 0 | +| 011 | 1 | +| 010 | 1 | +| 001 | 1 | +| 000 | 0 | + +Wrap around at the edges, so the pattern for position 1 is obtained by looking +at positions N, 1, and 2. + +Stop after printing a row consisting entirely of zero or ones. Note that +depending on your random initial row, this might never happen! + +For example, if N is 3, an example run might be: + +001 +011 +111 -- cgit v1.2.3