State 1: y,ys,sy,,s,ys,sy, State 2: s,sy,sy,,y,sy,ys, State 3: y,ys,ys,,s,ys,sy, State 4: y,sy,ys,,s,ys,sy, State 2: s,sy,sy,,y,sy,ys, ...
That it has a distinct "initializing" state could seen as an advantage. If not, change the initial string to one of states 2, 3 or 4 to get a purely three state engine.
State 1: y,sy,ys,,s,ys,sy, State 2: s,sy,sy,,y,sy,ys, State 3: y,ys,ys,,s,ys,sy, State 1: y,sy,ys,,s,ys,sy, ...
Modified engine that tracks the states:
use strict; use warnings; local $_ = 'y,ys,sy,,s,ys,sy,'; my %h; my $i; for my $n (1 .. $ARGV[0] || 12) { $h{$_} ||= ++$i; print("State $h{$_}: $_\n"); eval; }
As for your question, longer is trivial. Shorter, on the other hand...
State 1: y/123/231/ State 2: y/231/312/ State 3: y/312/123/ State 1: y/123/231/ ...
And with an "initializing" state:
State 1: y/123i/231/ State 2: y/2311/312/ State 3: y/3122/123/ State 4: y/1233/231/ State 2: y/2311/312/
In reply to Re: Tristable oscillator
by ikegami
in thread Tristable oscillator
by Prof Vince
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |