Паскаль. Основы программирования

       

Задача о встрече


Пример 4. Два лица A и B условились встретиться в определенном месте между 11 и 12 ч. Пришедший первым ждет другого в течение 20 мин, после чего уходит. Какова вероятность встречи этих лиц, если каждый в течение часа приходит к этому месту наудачу, а моменты прихода независимы друг от друга? (См. рис. 34).

Алгоритм решения

На прямой отложим отрезок, равный единицы длины, принимая за единицу масштаба 1 ч. Моменты случайного прихода лиц A и B можно изобразить точками на этом отрезке. Таким образом, нам необходимо выбрать наудачу две точки на данном отрезке. Обозначим моменты прихода лица A через x, а лица B - через y. Тогда множество всех возможных исходов испытания можно изобразить точками квадрата, сторона которого равна единице. 

Рис. 34

Встреча произойдет лишь в том случае, если разность моментов прихода лиц A и B по абсолютной величине не будет превосходить 1/3 (20 мин), т.е. если произойдет событие, удовлетворяющее неравенству |x - y| < 1/3. Запишем это неравенство в виде системы неравенств:

Эта система неравенств задает область, заштрихованную на рисунке.

Программа

Program Problem4;

    uses WinCrt;

    var

       x, y, p, e, pp : real;

       i, n, m          : longint;



{----------------------------------------------------------------------------------------}

{    Рекуррентная функция вычисления интеграла вероятностей   }

{ Пределы интегрирования от 0 до x. Функция Муавра-Лапласа }

  Function FF(x : real) : real;

      var

         n     : integer;

         u, I : real;

      begin

        if x >= 5

          then FF := 1

          else if x <= -5

                   then FF := -1

                   else

                     begin

                       u := x; n := 0; I := 0;

                       repeat

                           I := I + u;

                           n := n + 1;

                           u := -u*(x*x*(2*n - 1)/(2*n*(2*n + 1)))

                       until abs(u) < 0.00001;

                       FF := 2*I/sqrt(2*Pi)


                     end
      end;
{----------------------------------------------------------------------------------------}
{ Процедура вычисления числа испытаний при заданной гарантиро- }
{ ванной вероятности и заданной точности частости              }
   Procedure NumberExperiment(e, PP : real; var n : longint);
      var
        x : real;
      begin
        n := 0;
        repeat
          n := n + 1;
          x := 2*e*sqrt(n)
        until FF(x) >= PP
      end;
{----------------------------------------------------------------------------------------}
    begin
      randomize;
      write('Введите гарантированную вероятность '); readln(PP);
      write('Введите точность вычисления '); readln(e);
      NumberExperiment(e, PP, n);
      m := 0;
      for i := 1 to n do
        begin
          x := random;
          y := random;
          if (y > x - 1/3) and (y < x + 1/3) then
m := m + 1
        end;
      p := m/n;
      writeln('Искомая вероятность равна ', p:6:4);
      writeln('С точностью до ', e:1:6);
      writeln('С гарантированной вероятностью ', PP:1:4);
      writeln('При числе испытаний ', n)
    end.
Задание 18
Составьте программы решения задач.
1. В соответствии с заданием на полет экипажам двух самолетов необходимо передать одно донесение по радио в любое время от 10 ч до 10 ч 15 мин. Для передачи донесения требуется 3 мин. Какова вероятность того, что радист одного самолета начнет передачу донесения тогда, когда радист другого самолета передачу своего донесения не закончит?
2. В течение 20 мин после 9 ч ученик A в случайный момент времени звонит по телефону ученику B и ждет 2 мин, после чего кладет трубку. В течение тех же 20 мин ученик B заходит в квартиру в случайный момент и остается дома в течение 5 мин. Какова вероятность того, что разговор между учениками состоится?

Содержание раздела