Каламбур Балаганович Базаров
Программа
На форумах с февраля 2005
Местонахождение: Нахожусь: утром - в бодром состоянии духа, днем - в состоянии легкого алкогольного опьянения, вечером - в постпохмельной апатии, ночью - в гипнотерапевтическом сновидении...
Сообщений: 11
|
Для желающих проверить правильность утверждения "Нужно менять выбор" я написал программу.
Вот ее код:
code:
program ParadoxHolla;
uses
Forms,
UParadoxHolla in 'UParadoxHolla.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Randomize;
Application.Title := 'Парадокс Холла';
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
-- -- --
unit UParadoxHolla;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin;
type
TForm1 = class(TForm)
B1: TButton;
CB1: TCheckBox;
GroupBox1: TGroupBox;
E1: TSpinEdit;
procedure B1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.B1Click(Sender: TObject);
Var
//Массив дверей
//True - авто в ней, False - в ней нет авто
Dv:Array [0..2] Of Boolean;
//Переменные
I,J,K,V1,V2,V3,V4:Integer;
begin
//Количество выигранных авто
K:=0;
//Цикл, кол-во итераций которого равно кол-ву игр
For J:=1 To StrToInt(E1.Text) Do
Begin
//Выбор двери, за которую прячут авто
V1:=Random(3);
//Очистка массива дверей
For I:=0 To 2 Do
Dv[I]:=False;
//Прячем авто
Dv[V1]:=True;
//Первый выбор игрока
V2:=Random(3);
Repeat
//Выбор ведущего
V3:=Random(3);
Until (Dv[V3]=False)And(V3<>V2);
//Менять выбор или нет?
If CB1.Checked Then
//Выбор изменен
Begin
//Второй выбор игрока
V4:=-1;
Repeat
Inc(V4);
Until (V4<>V2)And(V4<>V3);
End
//Выбор не изменялся
Else V4:=V2;
//Проверка на наличие за выбранной игроком дверью авто
//и наращивание счетчика выиграшей в случае удачи
If Dv[V4] Then Inc(K);
End;
//Сообщение о количестве выигранных авто
ShowMessage('Выиграно: '+IntToStr(K))
end;
end.
Сама она прикреплена к посту.
Проверяйте.
Прикрепленный файл: paradoxholla.zip
"Файл был скачан 590 раз(а).
__________________
См. ник.
Мой пароль - 1111
Адрес поста | Один пост | Сообщить модератору | IP: Logged
|