Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % Initialisiere Gefangene mit Status 0 (noch nie im Raum gewesen)
- % Gefangener A = Gef(1), mit Null initialisiert, weil noch nichts gezählt
- Gef=zeros(100,1);
- % Initialisiere den Raum mit Status 1 (Licht ist aus)
- r=1;
- % Starttag ist Tag 0
- days=0;
- while Gef(1)<99
- % morgens (neuer Tag)
- days=days+1;
- % zufälliger Gefangener wird gewählt (Gefangener x)
- x=randi(100);
- if (x==1 && r==0)
- % ist Gefangener x der Gefangene A UND die Lampe leuchtet
- % dann merkt sich Gefangener A eine Zahl mehr und macht den Raum aus
- Gef(x)=Gef(x)+1;
- r=1;
- elseif (x~=1)
- % Ist der Status vom ausgewählten Gefangenen 0 (er war noch nie im
- % Raum)dann setzt er den Raumstatus auf 0 (Licht an)
- % hat er den Raumstatus geändert (von 1 auf 0), dann ändert er seinen
- % eigenen Status auf 1. War der Raumstatus vorher schon 0, dann
- % belässt der Gefangene seinen Status auf 0.
- % Ist der Status des Gefangenen 1, dann ändert er nichts am Raumstatus
- dr=r-Gef(x)*r + Gef(x);
- r = Gef(x)*r;
- Gef(x) = dr;
- end
- % wiederhole das Ganze, bis Gefangener A 99 mal gezählt hat
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement