Андриенко М. В.

учитель информатики и ИКТ

МОУ гимназии № 7

с. Донского 

Труновского района

Ставропольского края 

Вероятностные Модели. Задача Бюффона

 

Исследование математических моделей. Вероятностные модели. Задача Бюффона.

Цель урока:

Обучающая:

  • Закрепление знаний и навыков моделирования.
  • Учить составлять вероятностные модели.

Развивающая:

  • Развитие алгоритмического мышления. Научить выделять главное при решении задач.

Воспитывающая:

  • Воспитывать культуру общения, бережного отношения к технике.

Ход урока.

Организационный момент.

Объяснение нового материала.

Задача Бюффона: На поле, разграфленное параллельными прямыми, расстояние между которыми L,бросается наугад игла длинной l (рис. 1). Какова вероятность того, что игла, упав, пересечет хотя бы одну прямую?

 

 

 

 

 

 


Ж. Бюффон (XVIII в.) подсчитал . Таким образом, если , то . Кроме того,  ,  где N – число бросаний, N1 – число пересечений иглы с линиями. Относительная доля случаев, когда игла пересечет хотя бы одну из параллельных прямых равно . Это был один из старинных способов определения числа . Имитационное моделирование проведем следующим образом. Примем L=1 и . «Иглу» будем «бросать» в квадрат размером 20 20, левый нижний угол которого имеет координаты (0,0). Положение концов иглы будем задавать с помощью генератора случайных чисел в диапазоне от 0 до 20. Точнее говоря, эти числа определяют направление отрезка, вдоль которого находится очередная игла; для того, чтобы ее длина была равна , вторую из случайных точек – концов отрезка – подвинем вдоль него до достижения указанной длины иглы. В математическом отношении это сводится к следующей несложной процедуре:

·         Генерация  координат точек А(x1, y1), B(x2, y2);

·         Определение координат точки
, где    

Поскольку расстояние между горизонтальными линиями взято равным единице, а сами линии имеют целочисленные координаты по y, то определить, пересекает ли игла прямую, очень просто – да, если целые части ординат точек А и В1 различны.

Решение задачи Бюффона на языке Turbo Delphi:

unit Unit1;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;

 

type

  TForm1 = class(TForm)

    Button1: TButton;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

  i, j, k, m, n: integer;

  x1, x2, y1, y2, al: real;

implementation

 

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

begin

   m:=30000;

   n:=1;

   for i:= 1 to m do begin

      x1:=random*20;

      y1:=random*20;

      x2:=random*20;

      y2:=random*20;

      al:=0.5/sqrt(sqr(x2-x1)+sqr(y2-y1));

      j:=round(y1);

      k:=round(y1+al*(y2-y1));

      if j<>k then n:=n+1

           end;

      label1.Caption:= floattostr(m/n);

end;

 

end.

Вопросы:

1.      Как сделать результат точнее? (увеличить значение m)

2.      Почему результат слегка занижен? (Нужно увеличить число параллельных прямых)

Практическая  работа.

Учащиеся строят, анализируют, тестируют проект на языке Turbo Delphi. Затем самостоятельно или с помощью учителя переводят на язык Visual Basic.

Итог урока.

1.      Какой способ вычисления числа  мы с вами сегодня рассмотрели?

2.      Какой из методов (метод Монте-Карло или с использованием задачи Бюффона) дает более точный результат?

3.      В каком приложении еще можно реализовать данный проект?

Домашнее задание. § 5.7.2

Сайт сделан по технологии "Конструктор школьных сайтов".
Hosted by uCoz