Информатика -продвинутый курс



         

РАЗЛИЧНЫЕ ПРИМЕРЫ МОДЕЛИРОВАНИЯ СЛУЧАЙНЫХ ПРОЦЕССОВ - часть 4


Program Tochka;

Uses Crt, Graph; Var I, J : Integer; Z, P, X, H, Y : Integer;

Begin

X := 320; Y := 240; H := 10; P := 4; DetectGraph(I, J) ;

InitGraphd, J, ");

SetColor(15); Line(10, 312, 630, 312); Randomize;

Repeat

Z := Random(8); If Z >= P Then X := X + H Else X := X - H;

SetColor(Green); Circle(X, Y, 10); Delay(200);

SetColor(0); Circle(X, Y, 10)

Until KeyPressed Or (X >= 640) Or (X <= 0); CloseGraph

End.

В программе шаг является постоянным, но никто не мешает нам сделать его переменным, выбирая из интервала [0, hmax] случайным образом. Для этого зададим максимально возможный шаг НМах и в цикле определим H := Random(HMax).

Если задать аналогичным образом вероятности движения точки вверх – вниз, вправо - влево (0 < рх < 1, 0 < рy < 1), получим хаотическое блуждание точки на плоскости. Для моделирования блуждания точки в замкнутом прямоугольном объеме примем абсолютно упругое (зеркальное) отражение от стенок.

Программа 157.

Хаотическое блуждание точки

Program Broun;

Uses Crt, Graph;

Var I, J, X, Y, HxMax, HyMax, Hx, Ну : Integer; PI, P2, Z1, Z2 : Real;

Begin

X := 320; Y :== 240; HxMax := 30; PI := 0.5; P2 := 0.5; HyMax := 30;

DetectGraph (I, J) ; InitGraph (1, J, ''); SetColor(15);

Randomize; RectAngle(100, 100, 540, 380);

SetColor(Green); Circle(X, Y, 10); Delay(200); SetColor(0);

Circle(X, У, 10);

Repeat

Zl := Random; Z2 := Random; Hx := Random(HxMax);

Ну := Random(HyMax) ;

If (Zl < PI) Then X := X + Hx Else X := X - Hx;

If

(Z2 < P2) Then Y := Y + Ну Else Y :" У - Ну;

If X <= 110 Then X := X + 2 * (110 - X) ;

If X >= 530 Then X := X - 2 * (-530 + X) ;

If Y <= 110 Then Y := Y + 2 * (110 - Y) ;

If Y >= 370 Then Y := Y - 2 * (Y - 370);

SetColor(Green); Circle(X, Y, 10); Delay(100);

SetColor(0); Circle(X, Y, 10)

Until Keypressed; CloseGraph

End.

Подобным (хотя и более сложным) образом происходит броуновское движение, хорошо известное из курса физики. Если след точки не стирать, то можно будет наблюдать на экране траекторию такого движения.


Содержание  Назад  Вперед