das Spiel Flip
Von: Delastelle
Datum: So. 26. März 2023 10:15:32
Thema: Spiele+Rätsel

David H.Ahl stellte in seinen 2 Bänden "Basic Computer Spiele" (erschienen kurz vor 1980) das Spiel Flip vor. Dabei geht es darum 50 mal ja oder nein zu tippen. Der Computer wählt auch 50 mal ja oder nein. Nach jedem Tipp wird verglichen: hat man den Tipp des Computers korrekt? Ziel ist es bei 50 mal 25 mal oder mehr korrekte Züge des Computers vorherzusagen. Hier wird das Basic-Programm von Ahl übersetzt als Octave File mit den Antworten 0 und 1 wiedergegeben. Es folgen ein paar Testläufe.

1.Basic Quelltext von Ahl

Beschreibung, Testlauf bei Ahl, Basic-Quelltext
 

2.Octave Quelltext

\sourceon Octave % Flip nach Ahl % Anzeige '*' bei richtig geraten % bei 50 Versuchen ist eine Anzahl von 25 oder besser gut b1 = 50; s1 = 0; s2 = 0; eps = 0.0000001; erg = ' '; p = zeros(16,1); x = zeros(4,1); for i = 1:16 p(i) = 0.5; end for i = 1:4 x(i) = 0; if (rand < 0.5) x(i) = 1; end end f1 = 0.8; f2 = 0.3; s1 = 0; s2 = 0; ende = 0; erg = ' '; while (ende == 0) i9 = 8*x(4)+4*x(3)+2*x(2)+x(1)+1; z1 = p(i9); z2 = z1; z5 = 0; if (abs(z2-0.5) < eps) z2 = rand; end if (z2 <= 0.5) z2 = z2*f2+0*(1-f2); else z2 = z2*f2+1*(1-f2); end if (rand >= z2) z5 = 1; end % Eingabe Benutzer fprintf(erg); fprintf('(%i)',s2+1); % Eingabe a = ''; ende2 = 0; while (ende2 == 0) a = input(' 0 oder 1 '); if (a == 0) ende2 = 1; end if (a == 1) ende2 = 1; end end if (a == 1) z3 = 1; end if (a == 0) z3 = 0; end erg = ' '; s2 = s2 + 1; if (z3 == z5) % richtig geraten erg = '*'; s1 = s1 + 1; end % erneuere x - die letzten 4 Antworten x(1) = x(3); x(2) = x(4); x(3) = z3; x(4) = z5; p(i9) = f1*p(i9)+(1-f1)*x(3); if (s2 >= b1) ende = 1; end end fprintf(erg); fprintf('Ende\n'); fprintf('von %i hast du %i richtig erraten.\n',s2,s1); \sourceoff
 

3.Testläufe

(a) alles 0 tippen \sourceon Test 1 >> FlipAhl (1) 0 oder 1 0 (2) 0 oder 1 0 (3) 0 oder 1 0 *(4) 0 oder 1 0 *(5) 0 oder 1 0 *(6) 0 oder 1 0 (7) 0 oder 1 0 (8) 0 oder 1 0 (9) 0 oder 1 0 (10) 0 oder 1 0 *(11) 0 oder 1 0 (12) 0 oder 1 0 (13) 0 oder 1 0 (14) 0 oder 1 0 (15) 0 oder 1 0 (16) 0 oder 1 0 (17) 0 oder 1 0 (18) 0 oder 1 0 (19) 0 oder 1 0 (20) 0 oder 1 0 (21) 0 oder 1 0 (22) 0 oder 1 0 (23) 0 oder 1 0 (24) 0 oder 1 0 (25) 0 oder 1 0 (26) 0 oder 1 0 (27) 0 oder 1 0 (28) 0 oder 1 0 (29) 0 oder 1 0 (30) 0 oder 1 0 (31) 0 oder 1 0 (32) 0 oder 1 0 (33) 0 oder 1 0 (34) 0 oder 1 0 (35) 0 oder 1 0 (36) 0 oder 1 0 (37) 0 oder 1 0 (38) 0 oder 1 0 (39) 0 oder 1 0 (40) 0 oder 1 0 (41) 0 oder 1 0 (42) 0 oder 1 0 (43) 0 oder 1 0 (44) 0 oder 1 0 (45) 0 oder 1 0 (46) 0 oder 1 0 (47) 0 oder 1 0 (48) 0 oder 1 0 (49) 0 oder 1 0 (50) 0 oder 1 0 Ende von 50 hast du 4 richtig erraten. \sourceoff (b) 0 1 0 1 0 1 usw. \sourceon Test 2 >> FlipAhl (1) 0 oder 1 0 (2) 0 oder 1 1 *(3) 0 oder 1 0 *(4) 0 oder 1 1 (5) 0 oder 1 0 *(6) 0 oder 1 1 (7) 0 oder 1 0 (8) 0 oder 1 1 *(9) 0 oder 1 0 (10) 0 oder 1 1 (11) 0 oder 1 0 *(12) 0 oder 1 1 (13) 0 oder 1 0 (14) 0 oder 1 1 (15) 0 oder 1 0 (16) 0 oder 1 1 (17) 0 oder 1 0 (18) 0 oder 1 1 (19) 0 oder 1 0 (20) 0 oder 1 1 (21) 0 oder 1 0 (22) 0 oder 1 1 (23) 0 oder 1 0 (24) 0 oder 1 1 (25) 0 oder 1 0 (26) 0 oder 1 1 (27) 0 oder 1 0 (28) 0 oder 1 1 (29) 0 oder 1 0 (30) 0 oder 1 1 (31) 0 oder 1 0 (32) 0 oder 1 1 (33) 0 oder 1 0 (34) 0 oder 1 1 (35) 0 oder 1 0 (36) 0 oder 1 1 (37) 0 oder 1 0 (38) 0 oder 1 1 (39) 0 oder 1 0 (40) 0 oder 1 1 (41) 0 oder 1 0 (42) 0 oder 1 1 (43) 0 oder 1 0 (44) 0 oder 1 1 (45) 0 oder 1 0 (46) 0 oder 1 1 (47) 0 oder 1 0 (48) 0 oder 1 1 (49) 0 oder 1 0 (50) 0 oder 1 1 Ende von 50 hast du 5 richtig erraten. \sourceoff (c) bei Primzahlen Wechsel primes(50) Columns 1 through 11: 2 3 5 7 11 13 17 19 23 29 31 Columns 12 through 15: 37 41 43 47 \sourceon Test 3 >> FlipAhl (1) 0 oder 1 0 (2) 0 oder 1 1 (3) 0 oder 1 0 (4) 0 oder 1 0 *(5) 0 oder 1 1 (6) 0 oder 1 1 (7) 0 oder 1 0 (8) 0 oder 1 0 (9) 0 oder 1 0 (10) 0 oder 1 0 (11) 0 oder 1 1 *(12) 0 oder 1 1 (13) 0 oder 1 0 (14) 0 oder 1 0 (15) 0 oder 1 0 (16) 0 oder 1 0 (17) 0 oder 1 1 (18) 0 oder 1 1 *(19) 0 oder 1 0 (20) 0 oder 1 0 (21) 0 oder 1 0 (22) 0 oder 1 0 (23) 0 oder 1 1 *(24) 0 oder 1 1 (25) 0 oder 1 1 *(26) 0 oder 1 1 *(27) 0 oder 1 1 (28) 0 oder 1 1 (29) 0 oder 1 0 (30) 0 oder 1 0 (31) 0 oder 1 1 *(32) 0 oder 1 1 (33) 0 oder 1 1 (34) 0 oder 1 1 *(35) 0 oder 1 1 (36) 0 oder 1 1 (37) 0 oder 1 0 (38) 0 oder 1 0 (39) 0 oder 1 0 *(40) 0 oder 1 0 *(41) 0 oder 1 1 (42) 0 oder 1 1 (43) 0 oder 1 0 (44) 0 oder 1 0 (45) 0 oder 1 0 (46) 0 oder 1 0 (47) 0 oder 1 1 *(48) 0 oder 1 1 (49) 0 oder 1 1 (50) 0 oder 1 1 *Ende von 50 hast du 12 richtig erraten. \sourceoff (d) Zufall von Hand \sourceon Test 4 >> FlipAhl (1) 0 oder 1 0 *(2) 0 oder 1 0 (3) 0 oder 1 1 (4) 0 oder 1 1 *(5) 0 oder 1 1 (6) 0 oder 1 0 (7) 0 oder 1 0 (8) 0 oder 1 1 *(9) 0 oder 1 1 (10) 0 oder 1 0 *(11) 0 oder 1 1 (12) 0 oder 1 0 *(13) 0 oder 1 0 *(14) 0 oder 1 1 (15) 0 oder 1 1 *(16) 0 oder 1 0 *(17) 0 oder 1 0 *(18) 0 oder 1 1 (19) 0 oder 1 0 *(20) 0 oder 1 1 *(21) 0 oder 1 0 *(22) 0 oder 1 0 (23) 0 oder 1 1 (24) 0 oder 1 1 (25) 0 oder 1 0 (26) 0 oder 1 0 (27) 0 oder 1 1 (28) 0 oder 1 1 *(29) 0 oder 1 0 (30) 0 oder 1 0 (31) 0 oder 1 1 (32) 0 oder 1 1 *(33) 0 oder 1 1 *(34) 0 oder 1 1 *(35) 0 oder 1 1 (36) 0 oder 1 0 (37) 0 oder 1 1 *(38) 0 oder 1 1 (39) 0 oder 1 0 (40) 0 oder 1 0 *(41) 0 oder 1 1 *(42) 0 oder 1 1 *(43) 0 oder 1 1 *(44) 0 oder 1 1 (45) 0 oder 1 0 (46) 0 oder 1 0 (47) 0 oder 1 1 (48) 0 oder 1 1 (49) 0 oder 1 1 *(50) 0 oder 1 1 Ende von 50 hast du 22 richtig erraten. \sourceoff (e) Zufall per Hand Versuch -2- \sourceon Test 5 >> FlipAhl (1) 0 oder 1 0 *(2) 0 oder 1 0 *(3) 0 oder 1 1 (4) 0 oder 1 1 *(5) 0 oder 1 1 *(6) 0 oder 1 0 (7) 0 oder 1 1 (8) 0 oder 1 01 (9) 0 oder 1 1 *(10) 0 oder 1 1 (11) 0 oder 1 1 *(12) 0 oder 1 0 *(13) 0 oder 1 0 (14) 0 oder 1 1 *(15) 0 oder 1 1 *(16) 0 oder 1 1 *(17) 0 oder 1 1 (18) 0 oder 1 0 *(19) 0 oder 1 0 (20) 0 oder 1 0 *(21) 0 oder 1 0 (22) 0 oder 1 1 *(23) 0 oder 1 1 (24) 0 oder 1 1 *(25) 0 oder 1 0 (26) 0 oder 1 0 (27) 0 oder 1 0 (28) 0 oder 1 1 *(29) 0 oder 1 1 (30) 0 oder 1 0 (31) 0 oder 1 1 *(32) 0 oder 1 0 *(33) 0 oder 1 1 *(34) 0 oder 1 0 (35) 0 oder 1 1 *(36) 0 oder 1 1 (37) 0 oder 1 0 (38) 0 oder 1 0 *(39) 0 oder 1 1 *(40) 0 oder 1 0 (41) 0 oder 1 1 (42) 0 oder 1 0 *(43) 0 oder 1 1 (44) 0 oder 1 0 *(45) 0 oder 1 1 (46) 0 oder 1 1 *(47) 0 oder 1 0 (48) 0 oder 1 1 (49) 0 oder 1 0 *(50) 0 oder 1 1 Ende von 50 hast du 25 richtig erraten. \sourceoff (f) Zufall per Hand Versuch -3- \sourceon Test 6 >> FlipAhl (1) 0 oder 1 0 (2) 0 oder 1 0 *(3) 0 oder 1 0 *(4) 0 oder 1 0 *(5) 0 oder 1 1 *(6) 0 oder 1 1 *(7) 0 oder 1 1 (8) 0 oder 1 0 *(9) 0 oder 1 0 (10) 0 oder 1 1 *(11) 0 oder 1 0 (12) 0 oder 1 1 *(13) 0 oder 1 0 (14) 0 oder 1 1 *(15) 0 oder 1 1 *(16) 0 oder 1 1 (17) 0 oder 1 0 (18) 0 oder 1 0 *(19) 0 oder 1 1 *(20) 0 oder 1 1 (21) 0 oder 1 0 (22) 0 oder 1 0 (23) 0 oder 1 0 (24) 0 oder 1 1 *(25) 0 oder 1 1 *(26) 0 oder 1 1 (27) 0 oder 1 1 *(28) 0 oder 1 1 (29) 0 oder 1 0 (30) 0 oder 1 1 *(31) 0 oder 1 0 *(32) 0 oder 1 0 (33) 0 oder 1 1 *(34) 0 oder 1 1 *(35) 0 oder 1 1 *(36) 0 oder 1 0 *(37) 0 oder 1 0 (38) 0 oder 1 1 (39) 0 oder 1 1 (40) 0 oder 1 0 (41) 0 oder 1 1 *(42) 0 oder 1 1 (43) 0 oder 1 1 *(44) 0 oder 1 0 *(45) 0 oder 1 1 *(46) 0 oder 1 0 *(47) 0 oder 1 1 *(48) 0 oder 1 0 (49) 0 oder 1 1 *(50) 0 oder 1 0 *Ende von 50 hast du 29 richtig erraten. \sourceoff Ein Stern (*) bedeutet, dass man richtig geraten hat. Wer möchte, kann versuchen gegen den Computer noch besser abzuschneiden. Oder aber einen besseren Computergegner programmieren. Danke fürs Lesen sagt Ronald
 


Dieser Artikel kommt von Matroids Matheplanet
https://matheplanet.de

Die Url für diesen Artikel ist:
https://matheplanet.de/default3.html?article=1981