beste mensen, ik ben met een pascal programma bezig waarbij er 3 deuren zijn, achter 1 deur staat een auto.
een persoon kiest eerst een deur en de quizmaster opent hierna een van de overgebleven deuren waar de auto niet achter staat.
Dan mag de persoon nog eenmaal van deur verwisselen.
uiteindelijk is er dus 66% kans dat deze persoon de auto kiest nadat deze persoon heeft gewisselt van deur.
het probleem is alleen dat er uit dit programma komt dat de kans 50% is...
ik snap dus niet wat het probleem is..
alvast bedankt.
PROGRAMMA
een persoon kiest eerst een deur en de quizmaster opent hierna een van de overgebleven deuren waar de auto niet achter staat.
Dan mag de persoon nog eenmaal van deur verwisselen.
uiteindelijk is er dus 66% kans dat deze persoon de auto kiest nadat deze persoon heeft gewisselt van deur.
het probleem is alleen dat er uit dit programma komt dat de kans 50% is...
ik snap dus niet wat het probleem is..
alvast bedankt.
PROGRAMMA
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
| program auto;
var aantal:integer;
auto_deur:integer;
aantal_keer_gewonnen_zonder_wissel:integer;
gekozen_deur:integer;
x:integer;
kandidaat_wisselt_deur:integer;
aantal_keer_gewonnen_met_wissel:integer;
percentage_gewonnen_zonder_wissel:real;
percentage_gewonnen_met_wissel:real;
procedure auto_toewijzen;
begin
auto_deur:=random(3)+1;
end;
procedure eerste_keuze_kandidaat;
begin
gekozen_deur:=random(3)+1;
end;
procedure teller_gewonnen_zonder_wissel;
begin
if auto_deur=gekozen_deur then
begin
aantal_keer_gewonnen_zonder_wissel:=aantal_keer_gewonnen_zonder_wissel+1;
end;
end;
procedure kandidaat_wisselt;
begin
auto_deur:=random(2)+1;
kandidaat_wisselt_deur:=random(2)+1;
end;
procedure teller_gewonnen_met_wissel;
begin
if kandidaat_wisselt_deur = auto_deur then
begin
aantal_keer_gewonnen_met_wissel:=aantal_keer_gewonnen_met_wissel+1;
end;
end;
procedure percentage_win_zonder_wissel;
begin
percentage_gewonnen_zonder_wissel:=aantal_keer_gewonnen_zonder_wissel/aantal*100;
writeln('Percentage gewonnen zonder wissel is:',percentage_gewonnen_zonder_wissel:8:2,'%');
end;
procedure percentage_win_met_wissel;
begin
percentage_gewonnen_met_wissel:=aantal_keer_gewonnen_met_wissel/aantal*100;
writeln('Percentage gewonnen met wissel is :',percentage_gewonnen_met_wissel:8:2,'%');
end;
procedure aantal_keer_uitgevoerd;
begin
writeln('Aantal keer dat het programma is uitgevoerd is :' ,aantal:2);
end;
{---------------------------HOOFDPROGRAMMA-----------------------}
begin
randomize;
aantal_keer_gewonnen_met_wissel:=0;
aantal_keer_gewonnen_zonder_wissel:=0;
writeln('Geef op hoeveel keer dit uitgevoerd moet worden');
readln (aantal);
for x:=1 to aantal do
begin
auto_toewijzen;
eerste_keuze_kandidaat;
teller_gewonnen_zonder_wissel;
end;
for x:=1 to aantal do
begin
kandidaat_wisselt;
teller_gewonnen_met_wissel;
{activeer controle zooi door onderstaande haakies weg te halen}
{writeln('auto staat achter deur :',auto_deur);
writeln('kandidaat gaat voor deur staan :',gekozen_deur);
writeln('kandidaat wisselt naar deur :',kandidaat_wisselt_deur);
readln;}
end;
aantal_keer_uitgevoerd;
percentage_win_zonder_wissel;
percentage_win_met_wissel;
readln;
end. |
[ Voor 3% gewijzigd door D2k op 10-01-2003 09:59 ]