Последние записи
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
16th
Мар
Задача Бюффона о бросании иглы
Posted by obzor under Delphi
Как решать задачу Бюффона с помощью программирования?
Задача Бюффона о бросании иглы — один из первых примеров применения метода Монте-Карло и рассмотрения понятия геометрической вероятности.
Что значит решить? Смоделировать бросание иглы?
Если это, то вот, разбирайтесь. На Delphi, без верхушки, там понятно что.
const
HH=100.0; // высота поля, куда бросают
implementation
uses Math;
{$R *.dfm}
procedure NeedleThrow(L:Double;var h1,h2:Double);
begin
h1:=HH*Random;
h2:=h1+L*Sin(2*PI*Random);
end;
function NumberOfIntersections(h1,h2,r,L:Double):Integer;
var s,nr,i:Integer;
t:Double;
begin
s:=0;
nr:=Floor((HH+L)/r);
if h2<h1 then
begin
t:=h1;
h1:=h2;
h2:=t;
end;
for i:=-Round(L/r) to nr do
if (i*r>h1)and(i*r<h2) then Inc(s);
Result:=s;
end;
procedure TForm1.Button1Click(Sender: TObject);
var h1,h2,r,L:Double;
N,k,i:Integer;
begin
r:=10; // расстоянии между линиями
L:=9; // длина иглы
N:=1000000; // число бросков
k:=0; // число пересечений
for i:=1 to N do
begin
NeedleThrow(L,h1,h2);
k:=k+NumberOfIntersections(h1,h2,r,L);
end;
Edit1.Text:=FloatToStr(k/N);
end;
initialization
Randomize;
end.
Случайные статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)