home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / crm_demo / p_pascal / pegasau.pas < prev    next >
Pascal/Delphi Source File  |  1992-06-19  |  2KB  |  50 lines

  1. PROGRAM pegasau;
  2.  
  3. (* Gegeben sind drei Türen. Hinter zwei Türen befinden sich zwei
  4.     Ziegen, hinter einer Tür ein Auto. Man wählt eine Tür. Danach wird 
  5.     eine Tür geöffnet (die man natürlich nicht gewählt hat), hinter 
  6.     der eine Ziege ist. Danach wir behauptet, daß die Wahrscheinlichkeit,
  7.     daß man das Auto findet, sich verdoppelt, wenn man sich umentscheidet, 
  8.     also die andere geschlossene Tür wählt.
  9.     Das Programm erechnet die Wahrscheinlichkeit dafür.
  10.     Bleibt man bei seiner Wahl, ist die Wahrscheinlichkeit natürlich 1/3 *)
  11.  
  12.     CONST    nummer=3;
  13.             anzahl=100000;
  14.             
  15.     VAR k, j, wahl1, wahl2, offen : INTEGER;
  16.         tuer : ARRAY[1..3] OF INTEGER;
  17.         verh : REAL;
  18.         counter, richtig : longint;
  19.  
  20. BEGIN
  21.     offen:=0;
  22.     wahl2:=0;
  23.     richtig:=0;
  24.     FOR counter:=1 TO anzahl DO
  25.     BEGIN
  26.         FOR j:=1 TO 3 DO tuer[j]:=0;     (* Inhalt der Türen wird gelöscht *)
  27.         j:=RANDOM(nummer)+1;             (* Zufallszahl für Tür *)
  28.         tuer[j]:=1;                         (* hinter der das Auto versteckt ist *)
  29.         wahl1:=RANDOM(nummer)+1;         (* Erste Wahl *)
  30.         FOR k:=1 TO 3 DO
  31.         BEGIN
  32.             IF (k<>j) AND (k<>wahl1) THEN 
  33.                 offen:=k;                     (* Jetzt wird ein Tür geöffnet, *)
  34.         END;                                    (* die nicht gewählt wurde und hinter *)
  35.                                                 (* der das Auto nicht ist. *)
  36.  
  37.         FOR k:=1 TO 3 DO
  38.         BEGIN
  39.             IF (k<>wahl1) AND (k<>offen) THEN
  40.                 wahl2:=k;     (* Jetzt wird umentschieden auf die andere Tür *)
  41.         END;                    (* die noch zu ist. *)
  42.  
  43.         IF wahl2=j THEN     (* Auto gefunden *)
  44.             richtig:=richtig+1;
  45.     END;
  46.     verh:=richtig /anzahl;
  47.     WRITELN('Wahrscheinlichkeit für Treffer nach Umentscheiden ist :',verh:2:8);
  48.     WRITELN('Drücke Taste...');
  49.     REPEAT UNTIL KEYPRESSED;
  50. END.