Определить методом Монте-Карло площадь треугольника, вершины которого имеют координаты...

0 голосов
92 просмотров

Определить методом Монте-Карло площадь треугольника, вершины которого имеют координаты (-1,0) ; (0,1) ; (1,0)
Подсказка : треугольник заключен в прямоугольник со сторонами а=1 и b=2
Нужно в Паскале это сделать!!!
Помогите, пожалуйста...
И еще , учительница сказала , что вроде как надо модуль использовать...


image

Информатика (20 баллов) | 92 просмотров
0

1. Прямоугольник тут ни к чему особо. 2. Хамско - пренебрежительное "училка" оставьте для общения в среде подобных Вам по воспитанию.

0

Извините, просто спеша так написала...

0

Поможете сделать?

0

Во теперь, не спеша, приведите все в порядок.

0

Уже все исправила)

Дан 1 ответ
0 голосов
Правильный ответ

Условие попадания точки M(x,y) в треугольник с указанными координатами вершин можно описать системой неравенств:
\displaystyle \left\{\begin{matrix} y\geqslant 0 \\ y\leqslant x+1 \\ y\leqslant 1-x \end{matrix}\right

Если положить в методе Монте-Карло x∈(-1,1), y∉(0,1) для вещественных х,y,
то площадь треугольника можно найти, как площадь прямоугольника, представленного в задании (она равна 2), умноженную на отношение количества точек, попавших в контур треугольника, к общему количеству точек.

// PascalABC.NET 3.0, сборка 1160 от 05.02.2016
begin
  var n:=100000;
  var k:=Range(1,n).Select(e->Rec(2*Random()-1,Random())).
    Where(e->(e.Item2>=0) and (e.Item2<=e.Item1+1) and<br>    (e.Item2<=1-e.Item1)).Count;<br>  Writeln(2*k/n:0:3)
end.

Тестовое решение:
1.001

(142k баллов)
0

Если кому-то нужно с ABS, можно так написать определение k:
var k:=Range(1,n).Select(e->Rec(2*Random()-1,Random())).
Where(e->(e.Item2>=0) and (e.Item2<=1-abs(e.Item1))).Count;