Robust structures

For general discussion about Conway's Game of Life.
Post Reply
sorrge
Posts: 6
Joined: May 24th, 2017, 4:53 pm

Robust structures

Post by sorrge » May 24th, 2017, 5:34 pm

I am new to this forum, apologies if this has been already discussed.
I am interested in patterns that are resistant to damage from the outside, or from one side - for example, if a spaceship collides with it, it restores itself after some time. If I understood the state of the art correctly, it is an open question whether an absolutely impenetrable structure exists in GL. However, it is possible that some patterns are at least slightly more resistant to damage. There are eaters that might qualify, although I need to formally define a robustness measure before it can be certain.

My question is: has there been any serious investigations of these or related issues, either theoretical or by simulations? Is there a consensus about the possibility of impenetrable patterns? I would appreciate any references on these topics.

User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Robust structures

Post by dvgrn » May 24th, 2017, 9:27 pm

sorrge wrote:If I understood the state of the art correctly, it is an open question whether an absolutely impenetrable structure exists in GL. However, it is possible that some patterns are at least slightly more resistant to damage. There are eaters that might qualify, although I need to formally define a robustness measure before it can be certain.
I'd say that pretty much everybody is pretty much certain that no absolutely impenetrable structure is possible in Conway's Life -- though they're easy to find in many other rules.

For B3/S23 patterns robust against attacks by gliders, I don't think there have been any recent developments that can beat the old asymptotic limit of 4/9ths impermeability, by a chain of linked eater2s:

Code: Select all

x = 89, y = 90, rule = LifeHistory
.A$2.A$3A4$6.A$7.A$5.3A4$11.A$12.A$10.3A4$16.A$17.A$15.3A4$21.A$22.A$
20.3A2$23.A2$26.A$27.A$25.3A2$28.A2$31.A$32.A$30.3A2$33.A2$36.A$37.A$
35.3A2$38.A2$41.A$42.A$40.3A2$43.A2$46.A$47.A$45.3A39.2A$88.A$83.2A.A
$83.2A.2A$51.A$52.A30.2A.2A$50.3A31.A.2A$79.2A.A$79.2A.2A2$56.A22.2A.
2A$57.A22.A.2A$55.3A17.2A.A$75.2A.2A2$75.2A.2A$61.A14.A.2A$62.A8.2A.A
$60.3A8.2A.2A2$71.2A.2A$72.A.2A$67.2A.A$67.2A.2A2$67.2A.2A$68.A.2A$
63.2A.A$63.2A.2A2$63.2A.2A$64.A.2A$62.A$62.2A!
sorrge wrote:My question is: has there been any serious investigations of these or related issues, either theoretical or by simulations? Is there a consensus about the possibility of impenetrable patterns? I would appreciate any references on these topics.
The question certainly does come up a lot. Here's a summary I wrote up a few months ago, though there aren't a lot of external references.

As I show there, it's fairly easy to design a pattern with a "safe area" in the center, that won't be affected by any single glider coming from any direction. But all bets are off as soon as you have a free choice of other spaceship types, or as soon as you have to reliably repair the guard structure, especially if a second glider might arrive at any time.

One really big problem is that there are an infinite number of possible spaceships, and the assumptions that make a pattern robust against attacks by one type of spaceship are pretty sure to make it very fragile against other spaceship types.

sorrge
Posts: 6
Joined: May 24th, 2017, 4:53 pm

Re: Robust structures

Post by sorrge » May 25th, 2017, 7:37 am

Thank you for the reply.

In your other post you wrote that an active repair mechanism is more vulnerable to attack than a passive barrier. Let's consider a defense against gliders. The active defense can be broken only if another attack comes while the damage from the previous attack is not yet repaired. But the passive defense is always broken on the second attack. So it seems that active repair is much better, even if it has some vulnerability periods. We can compute its expected lifetime based on the repair period and the rate of incoming attacks.

To defend from other spaceships, we could use a distant dense debris field. Let's not consider spaceships that can pass through random debris, as this is a technology more advanced than the one we are trying to design. Then any complex spaceship will be destroyed in the collision with the debris field, will possibly cause a chain reaction that will expand the debris somewhat (that's why it has to be distant) and produce a number of other spaceships, most of them gliders. Thus the debris field is "self-repairing" to some extent, because random debris will be turned into another random debris with same properties, and it will convert any incoming spaceship into a range of other spaceships with known probability distribution, most of which will be gliders. Now the system of active anti-glider defense + a random debris field is resistant to all attacks to some extent, and its expected lifetime can also be calculated.

If we consider that everything is located in empty space, we can continuously build layers of such defenses. In fact we don't even need to build debris fields: we simply build many layers of active glider defenses at large distance from each other. Once some layer is penetrated, it becomes a debris field buffer converting spaceships into gliders for the next layer. Based on the frequency of defense layer building process, we can calculate the expected lifetime of the whole system. This will be a sum of some kind of series, and if it can be shown that it diverges then we have our absolute defense.

One potential problem that I already see with this proposal is that a random debris field will transform a spaceship into a burst of gliders. So the glider defense has to be designed to withstand this kind of disturbance, which may require the ability to repair many variants of damages. I think it's a technical problem that could be solved.

Do you have any comments or criticism of this plan?

User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Robust structures

Post by dvgrn » May 25th, 2017, 8:57 am

sorrge wrote:Thus the debris field is "self-repairing" to some extent, because random debris will be turned into another random debris with same properties, and it will convert any incoming spaceship into a range of other spaceships with known probability distribution, most of which will be gliders. Now the system of active anti-glider defense + a random debris field is resistant to all attacks to some extent, and its expected lifetime can also be calculated.
...
One potential problem that I already see with this proposal is that a random debris field will transform a spaceship into a burst of gliders. So the glider defense has to be designed to withstand this kind of disturbance, which may require the ability to repair many variants of damages. I think it's a technical problem that could be solved.

Do you have any comments or criticism of this plan?
Nothing much, except that it's going to be a really tall order to calculate the expected lifetime -- with any accuracy, anyway. With patterns the size that these designs are going to have to be, the highest-probability chain reaction is very likely going to be something that you don't know about -- i.e., in practice it can only be discovered by experiment.

One example of the kind of thing you might want to take into account in such a calculation:

If I were designing an attack on this kind of defense system, I'd probably shoot different single spaceships at the first debris field/active defense layer, until I found one that happened to spit out a glider-producing switch engine heading for the next defense layer. Switch engines are surprisingly common, so this isn't a completely unrealistic line of attack to try.

If these layers are very far apart from each other, that means that the next layer will have to be able to handle hundreds or thousands of gliders all striking on the same lane... very often this kind of attack will "drill through" a debris layer, so later layers may also be in danger.

With the amount of space that you're proposing taking up with all these far-apart layers, it really seems like it would be simpler to fill that entire space with sparse random ash, or maybe just sparsely placed blocks. In practice it will take a very carefully targeted multi-spaceship attack to get through a passive defense along those lines -- and the wider the debris field is, the less likely that anything will get through. Glider-producing switch engines aren't a problem in this scenario -- if they don't have empty space to travel through they'll quickly be destroyed.

That's certainly a setup that would be amenable to some kind of randomized statistical analysis. I don't remember if anything quite along those lines has already been done.

sorrge
Posts: 6
Joined: May 24th, 2017, 4:53 pm

Re: Robust structures

Post by sorrge » May 25th, 2017, 11:39 am

dvgrn wrote:the highest-probability chain reaction is very likely going to be something that you don't know about -- i.e., in practice it can only be discovered by experiment
The idea was that a chain reaction involving many layers is impossible, given that all layers are random and assuming there is no pattern that can cut through random debris without being randomly transformed. Then even if some reaction can spread beyond a layer with some low probability, and hit the next layer and spread beyond that, each time the probabilities of breaking a layer will be independent, and, multiplied together, the probability of penetrating N layers will decrease exponentially with N. This, together with the fact that layers are added continuously with constant frequency, makes the infinite expected time to penetrate all layers, if the probabilities are small enough. A calculation of these probabilities is needed: statistics could be computed by sampling outcomes of a large number of random debris/random spaceship collisions.

However, it's a very good point you made about the possibility of forming a glider-producing structure inside the layers. This didn't occur to me. If such a pattern can cut through arbitrary number of random layers, it brings the expected lifetime of the whole thing down to the finite domain, since it can occur with non-zero probability. I need to think about this more.

I'm skeptical about the idea of filling the space with something. An unbounded chain reaction in this field cannot be excluded, I think. At least I don't see how a bound can be proven. Then it means a finite lifetime, since we must assume a non-zero probability for a chain reaction that will consume the entire field and hit the protected side. The gaps served the purpose of breaking the possibility of a chain reaction, which is also not certain to me now because of the spaceship-making patterns.

User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Robust structures

Post by dvgrn » May 25th, 2017, 1:22 pm

sorrge wrote:I'm skeptical about the idea of filling the space with something. An unbounded chain reaction in this field cannot be excluded, I think. At least I don't see how a bound can be proven.
Oh, I certainly agree. Let's say we look at random pairs of gliders striking the left edge of thousand-cell-wide sparse random fields of blocks, and measure the maximum distance D that the resulting reaction travels rightward before dying out.

If you run enough experiments with enough different random fields, eventually a reaction will get all the way across the thousand-cell-wide "minefield". There's very likely a nice clean power law that you can work out from a few million experiments, that will give you a very good estimate of how many glider pairs you'll have to throw at the block field before there's a 50% chance that a chain reaction will make it across a width-N minefield, for any width N and any specific random density and content of the minefield.

If the probabilities get exponentially smaller as the minefield gets wider, as I'm claiming, then you can pick a value of N that gives a probability of permeability that's safely lower than any chosen finite value P ... but it will never go quite to zero.

Silly Thought Experiment
Now, as we start looking at really ridiculously low values of P, we start having to deal with the inconvenient fact that a glider can perfectly well hit a patch of random debris and accidentally produce a working glider gun.

To date, Catagolue has generated 200 trillion objects from random asymmetric soup, and this has never happened. But on the other hand it's fairly trivial to set up some random-looking blocks that are really secretly a seed for a gun -- a period-156 multi-gun, maybe. The most likely configuration may still be so improbable that we'll never see anything like this come out of an asymmetric soup in Catagolue, but in theory it's bound to happen eventually.

This might cause trouble with that nice clean power law I mentioned, depending on the intricate details of how different period glider streams interact with whatever is in the minefield.

Maybe even more painful, there are quadratic-growth patterns that could randomly get started on the inside edge of your far-apart layers, that start up a series of glider-producing switch engines. Again, they won't be a problem if you just don't leave any empty space between your layers (!).

Even (Much) More Ridiculous...
But probably we're just not being imaginative enough. There's a non-zero probability that a couple of gliders (or whatever) could hit a minefield and transform it into a glider loop that happens to repeatedly shoot a single-channel glider stream off to the side, that happens to be a construction recipe for a glider gun, spaceship gun, or whatever.

Now you have not just one stream of spaceships attacking your structure, but an increasing number of them as time goes on... and the guns could be constructed with some sparse block shielding, so they'd be less likely to be destroyed immediately by random return gliders from whatever their gliders hit... and the original single-channel constructor that's causing all this trouble would be around a corner out of the way of all the excitement, so it might well keep causing trouble for quite a long time.

If your calculations don't take this possibility into account -- along with an unlimited number of even less likely but correspondingly more evil mechanisms -- then you won't know for sure that the sum of your hypothetical series actually diverges. In other words: there's an awful lot of really weird stuff out there
sorrge wrote:In your other post you wrote that an active repair mechanism is more vulnerable to attack than a passive barrier. Let's consider a defense against gliders. The active defense can be broken only if another attack comes while the damage from the previous attack is not yet repaired. But the passive defense is always broken on the second attack...
That's not quite accurate. It's theoretically possible that a second glider could cause an unpredictable chain reaction. But much more often the first glider just hits and destroys a single block, or moves it by (2,1), and in all those cases a sufficiently thick sparse-block passive defense is just about as good after the strike as before.

The high odds of cleanly absorbing a glider, with no interesting fireworks at all, are what make the passive defense about as good as we can get. Again, as soon as you start worrying about other spaceship types, all bets are off and a whole different analysis has to be done.

User avatar
calcyman
Moderator
Posts: 2936
Joined: June 1st, 2009, 4:32 pm

Re: Robust structures

Post by calcyman » May 26th, 2017, 3:58 am

dvgrn wrote:For B3/S23 patterns robust against attacks by gliders, I don't think there have been any recent developments that can beat the old asymptotic limit of 4/9ths impermeability, by a chain of linked eater2s:
We can get arbitrarily close to 1 (without achieving it) by using highway robbers. It would look something like this, except rotated by 45 degrees:

Code: Select all

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Each X is four huge banks of highway robbers, capable of eating any glider approaching from above or below (remember that we've rotated by 45 degrees). And the aspect ratio is under-exaggerated; in reality, the slope of the banks would be much steeper.

So, if you want to protect against greater than 1 - epsilon of gliders, do the following:
  • Create an X capable of eating at least 1 - epsilon/2 of vertical gliders.
  • Concatenate enough copies of this X such that at least 1 - epsilon/2 of the incident lanes are vertical.
The population grows quadratically, and the convex hull area grows cubically, as a function of 1/epsilon.
What do you do with ill crystallographers? Take them to the mono-clinic!

sorrge
Posts: 6
Joined: May 24th, 2017, 4:53 pm

Re: Robust structures

Post by sorrge » May 26th, 2017, 9:28 am

dvgrn,
I see now that the original premise that an isolated, local attack will stay local is wrong. Any isolated attack has the potential to turn into a blob of unpredictable things that may grow quadratically through empty space, and should be treated as such.

In this case I also see now that the empty space is not helpful at stopping the chain reaction. What is needed is a growing "insulator" field that can hold off any potential attack with probability increasing with distance. Empty space is not a good insulator, because an arbitrary distance can be crossed by spaceships. Each patterned passive defense also may have a corresponding spaceship that can cut through it indefinitely. It seems that random debris might be the best insulator after all. There is a paper titled Self-organized criticality in the 'Game of Life", Nature 1989, by Bak et. al, which indicates that the state which I call "random debris", the statistical equilibrium after many random perturbations, has a power law distribution of perturbation propagation lengths, as you suggested.
dvgrn wrote:If the probabilities get exponentially smaller as the minefield gets wider, as I'm claiming, then you can pick a value of N that gives a probability of permeability that's safely lower than any chosen finite value P ... but it will never go quite to zero.
The point is that we are constantly growing P, in which case the expected outcome will depend on particular values of attack rate vs. growth speed. I need to do some math to figure out if a constant-speed growth of the debris field can guarantee the infinite expected lifetime.

I found a related discussion that you had a while ago mentions a hypothetical pattern named "IceNine" that can consume random debris, so we need to assume that it doesn't exist, which is a stronger version of the assumption that there are no spaceships that can pass random debris.

User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Robust structures

Post by dvgrn » May 26th, 2017, 10:52 am

sorrge wrote:The point is that we are constantly growing P, in which case the expected outcome will depend on particular values of attack rate vs. growth speed. I need to do some math to figure out if a constant-speed growth of the debris field can guarantee the infinite expected lifetime.
Another thing to worry about is this: how exactly are you going to grow a random debris field at constant speed? If you build a pattern that has any regularity to it, that regularity might turn out to be exploitable by a chain reaction.

If you add a pseudo-random number generator to your debris spewer, well, that will probably take care of the problem if you do it well enough, but there's still bound to be some underlying regularity.

It doesn't seem as if there will be any safe way to sow true "random debris" at a constant rate, increasing the width of the minefield on the near side. You'd have to actually cause chaotic explosions and let them settle. And if you do that, you're right back where you started, with unpredictable possibly-quadratic things occasionally popping up on the wrong side of your shield...!
sorrge wrote:I found a related discussion that you had a while ago mentions a hypothetical pattern named "IceNine" that can consume random debris, so we need to assume that it doesn't exist, which is a stronger version of the assumption that there are no spaceships that can pass random debris.
Right. I think everyone pretty much agrees that IceNine's probability of existence is as close to zero as makes no difference -- but it would be awfully hard to prove that formally.

sorrge
Posts: 6
Joined: May 24th, 2017, 4:53 pm

Re: Robust structures

Post by sorrge » May 30th, 2017, 6:28 am

I did some simulations of how random perturbations spread through dense random fields. I filled a board with random state of density 0.5, waited for convergence, and then repeatedly perturbed a 100x100 square in the center, filling it again randomly with density 0.5. After each perturbation I waited for convergence and compared the resulting state to the one before perturbation, measuring the bounding box of the difference and calculating how far it has spread in four directions beyond the original 100x100 box. Here is a plot with the results:
4c7eftO.png
4c7eftO.png (41.61 KiB) Viewed 218 times
It seems that probability of perturbation spreading to distance d, beyond some initial d0~50, has the form exp(-a*d + b), with a > 0. In other words, it falls exponentially fast, which means that random debris is a really good insulator.

Now let's see what happens when the debris field is growing under constant rate random attacks. We assume for the moment that the growth is unstoppable and its speed is constant, so that it grows by 1 cell every n steps. So, during growth iteration k: the depth of the wall is k, the length of the exposed wall surface is 8k (we suppose it grows in all directions as a square) and the wall will experience on average k*m attacks (m depending on attack rate, multiplied by k because the whole wall surface is being attacked), each of which succeeds in breaking through the wall with the probability exp(-a*k + b). The probability of any of the k*m attacks succeeding is less or equal to k*m*exp(-a*k + b) (assume it's < 1). Then the probability of the wall surviving through growth iteration k is greater or equal to 1 - k*m*exp(-a*k + b). The probability of the wall surviving all growth iterations up to K is greater or equal to Prod(1 - k*m*exp(-a*k + b), k = 1..K). The probability of the wall surviving forever is then greater or equal to the infinite product Prod(1 - k*m*exp(-a*k + b), k = 1..infinity). This is a product of the form Prod(1 + a_n, n = 1..infinity), which converges to a non-zero value if and only if the infinite sum Sum(a_n, n = 1..infinity) converges. The sum Sum(k*m*exp(-a*k + b), k = 1..infinity) converges for all a > 0. This means that, independently of the attack rate, growth rate and other factors, the wall has non-zero infinite survival probability!

This means that after an initial transient period of infancy when the wall is thin and can be easily destroyed, it reaches the "escape velocity" and becomes practically immortal, with probability of ever being penetrated being astronomically small and decreasing exponentially.
Moreover, it's not even necessary to grow the wall with linear speed. This can be much more relaxed, in fact any growth faster than logarithmic will achieve immortality, and even logarithmic growth may do so depending on constants. This makes me wonder whether we need to grow the wall at all: perhaps its natural growth caused by random attacks on the outer surface is sufficient by itself. This needs to be further investigated.

How to grow random debris? Of course, we must expect a pattern that can disassemble any other regular pattern, although this can be made arbitrarily difficult and slow using cryptographically strong pseudorandom number generators. The only answer I can see at the moment is for the wall builders to get additional entropy from random attacks. This should be possible with nonzero probability of survival, which is all that is needed. Then we add this entropy to the random number generator, making its output after this step conditioned on the content of a random attack and thus unpredictable.

User avatar
dvgrn
Moderator
Posts: 10669
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Robust structures

Post by dvgrn » May 30th, 2017, 6:47 am

sorrge wrote:How to grow random debris? Of course, we must expect a pattern that can disassemble any other regular pattern, although this can be made arbitrarily difficult and slow using cryptographically strong pseudorandom number generators. The only answer I can see at the moment is for the wall builders to get additional entropy from random attacks. This should be possible with nonzero probability of survival, which is all that is needed. Then we add this entropy to the random number generator, making its output after this step conditioned on the content of a random attack and thus unpredictable.
Sounds reasonable enough. Yes, any reasonable randomization of the wall is going to cut the probability of success of random attacks way down, and of course a directed attack will get though random debris easily in any case -- every piece of small ash has multiple attack lanes that will annihilate it cleanly. There's always a nonzero probability of just the right "meteor shower" of gliders to knock a hole in any width of wall, but the odds are definitely in the wall's favor.

That's a mighty nice straight line in the first part of that logarithmic graph... If you have a test setup that can handle this kind of thing, maybe it would be interesting to see what the penetration rate is if an ark that produces backward gliders happens to show up on the outside of the wall:

Code: Select all

x = 16, y = 16, rule = B3/S23
11bobo$10bo$11bo2bo$13b3o7$bo$obo2$o2bo$2b2o$3bo!
You can't really simulate that with a glider gun in the middle area, because any stationary gun is way more susceptible to getting shot down by return gliders, than a puffer that's constantly putting more protective junk behind itself. A row of these with slightly randomized offsets would make a very effective c/12 wall-builder -- as long as whatever you're trying to protect could stay ahead of it!

I guess, since each switch-engine pair is predictable, you could achieve any wall growth rate you wanted by building the switch engines along with a little junk in their paths several hundred cells along, to shut them down predictably. Then the next wave of switch engines could be built at an offset.

EDIT: You could even leave one-time turners that would allow an occasional glider to sneak in along the remaining open lanes, and add some chaos several layers back where the chance of blowback is negligible. This could be made perfectly predictable from the wall-builder's point of view, and even if an attack had made it to the added-chaos point, the odds would be very low that anything would make it back out through the puffer debris:

Code: Select all

#C Sorry, this is kind of on the edge of LifeViewer's abilities...
x = 1441, y = 1367, rule = B3/S23
obo$b2o$bo353$810b2o$810b2o89$720b2o$720b2o9$1010b2o$1010bo$1011b3o$
1013bo8$999b2o$999bobo$1001bo$1001b2o10$944bobo$943bo$944bo2bo$946b3o
7$934bo$933bobo2$933bo2bo$935b2o$936bo92b2o$1029b2o40$630b2o$630b2o9$
920b2o$920bo$921b3o$923bo8$909b2o$909bobo$911bo$911b2o10$854bobo$853bo
$854bo2bo$856b3o7$844bo$843bobo2$843bo2bo$845b2o$846bo92b2o$939b2o20$
1218b2o$1218bobo$1220bo$1220b2o10$1163bobo$1162bo$1163bo2bo$1165b3o4$
540b2o$540b2o2$1153bo$1152bobo2$1152bo2bo$1154b2o$1155bo92b2o$1248b2o$
830b2o$830bo$831b3o$833bo8$819b2o$819bobo$821bo$821b2o10$764bobo$763bo
$764bo2bo$766b3o7$754bo$753bobo2$753bo2bo$755b2o$756bo92b2o$849b2o9$
1139b2o$1139bo$1140b3o$1142bo7$788bo$787bobo338b2o$788b2o338bobo$1130b
o$1130b2o10$1073bobo$1072bo$1073bo2bo$1075b3o4$450b2o$450b2o2$1063bo$
1062bobo2$1062bo2bo$1064b2o$1065bo92b2o$1158b2o$740b2o$740bo$741b3o$
743bo8$729b2o$729bobo$731bo$731b2o5$1437b2o$1437bobo$746b2o691bo$745bo
bo691b2o$746bo$674bobo$673bo$674bo2bo$676b3o5$1382bobo$1381bo$664bo
717bo2bo$663bobo718b3o2$663bo2bo$665b2o$666bo92b2o$759b2o2$1372bo$
1371bobo2$1371bo2bo$1373b2o$1374bo2$1049b2o$1049bo$1050b3o$1052bo8$
1038b2o$1038bobo$1040bo$1040b2o10$983bobo$982bo$983bo2bo$985b3o7$973bo
$972bobo2$972bo2bo$974b2o$975bo92b2o$1068b2o$650b2o$650bo$651b3o$653bo
5$1358b2o$1358bo$1359b3o$639b2o720bo$639bobo$641bo$641b2o5$1347b2o$
1347bobo$1349bo$1349b2o2$584bobo$583bo$584bo2bo$586b3o5$1292bobo$1291b
o$574bo717bo2bo$573bobo718b3o2$573bo2bo$575b2o$576bo92b2o$669b2o2$941b
2o339bo$940bobo338bobo$941bo$1281bo2bo$1283b2o$1284bo2$959b2o$959bo$
960b3o$962bo8$948b2o$948bobo$950bo$950b2o10$893bobo$892bo$893bo2bo$
895b3o7$883bo$882bobo2$882bo2bo$884b2o$885bo92b2o$978b2o$560b2o$560bo$
561b3o$563bo5$1268b2o$1268bo$1269b3o$549b2o720bo$549bobo$551bo$551b2o
4$917bo$916bobo338b2o$917b2o338bobo$1259bo$1259b2o10$1202bobo$1201bo$
1202bo2bo$1204b3o4$579b2o$579b2o2$1192bo$1191bobo2$1191bo2bo$1193b2o$
1194bo2$869b2o$869bo$870b3o$872bo8$858b2o$858bobo$860bo$860b2o7$875b2o
$874bobo$875bo$803bobo$802bo$803bo2bo$805b3o7$793bo$792bobo2$792bo2bo$
794b2o$795bo92b2o$888b2o9$1178b2o$1178bo$1179b3o$1181bo8$1167b2o$1167b
obo$1169bo$1169b2o10$1112bobo$1111bo$1112bo2bo$1114b3o7$1102bo$1101bob
o2$1101bo2bo$1103b2o$1104bo2$779b2o$779bo$780b3o$782bo8$768b2o$768bobo
$770bo$770b2o10$713bobo$712bo$713bo2bo$715b3o7$703bo$702bobo2$702bo2bo
$704b2o$705bo92b2o$798b2o2$1070b2o$1069bobo$1070bo5$1088b2o$1088bo$
1089b3o$1091bo8$1077b2o$1077bobo$1079bo$1079b2o10$1022bobo$1021bo$
1022bo2bo$1024b3o7$1012bo$1011bobo2$1011bo2bo$1013b2o$1014bo2$689b2o$
689bo$690b3o$692bo36$708b2o$708b2o9$998b2o$998bo$999b3o$1001bo8$987b2o
$987bobo$989bo$989b2o10$932bobo$931bo$932bo2bo$934b3o7$922bo$921bobo2$
921bo2bo$923b2o$924bo51$908b2o$908bo$909b3o$911bo8$897b2o$897bobo$899b
o$899b2o10$842bobo$841bo$842bo2bo$844b3o7$832bo$831bobo2$831bo2bo$833b
2o$834bo51$818b2o$818bo$819b3o$821bo!
#C [[ STEP 50 ]]
This kind of thing might even be set up to count as "cryptographically strong pseudorandom" from an attacker's point of view, I suppose...?

Post Reply