вторая часть

advertisement
Методика и содержание подготовки учащихся к олимпиадам по программированию.
Дистанционный курс.
Площадь треугольника
Иногда в задачах требуется получить площадь той или иной фигуры. Учитывая тот факт, что
выпуклый N-угольник можно разделить на треугольники и сложить их площадь, формулы
площади треугольника через разные параметры являются довольно важной частью олимпиадной
подготовки. С другой стороны, неизвестные параметры можно связать с известными именно через
площадь.
Формула Герона
Пусть a, b и с – длины сторон треугольника. Тогда площадь треугольника определяется по
формуле:
(a  b  c)
.
S  p( p  a)( p  b)( p  c) , где p – полупериметр, p 
2
Площадь треугольника по двум сторонам
Пусть a и b – известные стороны треугольника. Тогда площадь треугольника:
1
S  ab sin(  ) , где α – угол между этими сторонами. Если вспомнить, что абсолютная
2
1
величина векторного произведения ab  a b sin  , то S  a  b (площадь треугольника есть
2
половина векторного произведения его сторон).
Площадь треугольника по стороне и проведенной к ней высоте
Пусть a – сторона треугольника, h – высота, проведенная к этой стороне. Тогда площадь
треугольника:
1
S  ah
2
Пример задачи
Дано прямоугольное окно ширины a и высоты b. Дан также плоский (можно считать с
нулевой толщиной) треугольный объект со сторонами равными c1, c2 и с3. Все числа по модулю не
превосходят 100. Определить, можно ли вытащить данный треугольный объект из помещения
через заданное окно. Объект можно поворачивать относительно любой оси. Программа должна
выдать слово YES, если такое возможно, и NO – в противном случае.
Идея решения состоит в том, что наименьший «размер» треугольника – это высота, проведенная к
наиболее длинной его стороне (см. рисунок). Максимальным «размером» окна является его
диагональ. Таким образом, алгоритм решения задачи сводится к следующим действиям
1. Найти максимальную сторону треугольника
2. Найти высоту, проведенную к этой стороне (например, вычислив площадь треугольника по
трем сторонам и выразив через нее высоту)
МЦНМО, 2007/08 учебный год
Методика и содержание подготовки учащихся к олимпиадам по программированию.
Дистанционный курс.
3. Найти длину диагонали прямоугольника
4. Сравнить
высоту
треугольника
прямоугольника и вывести ответ.
и
диагональ
h
Уравнение прямой
Мы не будем обсуждать всевозможные способы математического описания прямых, а
остановимся только на одном, который чаще всего встречается в олимпиадных задач, и которого
достаточно для решения большинства задач уровня районных или областных олимпиад.
Уравнением прямой вида ax+by+c=0 называется такое равенство, которое является верным,
при подстановке в него координат любой точки, принадлежащей этой прямой, и неверным для
всех остальных точек. Одна и та же прямая может описываться уравнениями с различными
коэффициентами.
Построение уравнения прямой по двум точкам
Пусть даны точки A (xa, ya) и B (xb, yb) и требуется написать уравнение прямой, проходящей
через эти точки. Заметим следующее: пусть N (a, b) - вектор, перпендикулярный прямой AB. Тогда
любой вектор AX , лежащий на прямой AB, также перпендикулярен вектору N.
X
N
B
A
При этом координаты вектора N можно найти из условия что скалярное произведение AB и
N должно быть равно нулю.
Найдем координаты вектора AB . По определению координат вектора: AB (xb-xa, yb-ya).
Запишем скалярное произведение: AB ∙ N =a (xb - xa) + b(yb - ya). Отсюда значения a и b
можно найти большим количеством способов. Один из них может быть таким:
a=(yb - ya),
b= - (xb - xa)
МЦНМО, 2007/08 учебный год
Методика и содержание подготовки учащихся к олимпиадам по программированию.
Дистанционный курс.
(в том, что скалярное произведение с такими значениями равно нулю можно убедиться
простой подстановкой).
Рассмотрим произвольную точку X (x, y), принадлежащую прямой. Для нее должно
выполняться равенство AX ∙ N =0 (так как N перпендикулярен всей прямой AB).
Запишем координаты вектора AX, по определению: (x - xa, y – ya).
Теперь запишем скалярное произведение:
a(x – xa) + b(y – ya) = 0.
Раскроем скобки:
ax – axa + by – bya = 0.
Обратим внимание на то, что xa и ya – это известные числа (координаты одной из точек,
данных нам в начале задачи). Поэтому axa и bya мы способны вычислить. Сгруппируем:
ax + by – (axa + bya) = 0.
Обозначим скобку вместе со знаком «минус» как c:
c= – (axa + bya), тогда получим окончательное уравнение
ax + by + c = 0.
Полезные свойства уравнения прямой
Уравнение прямой в виде ax + by + c = 0, в отличие от y=kx+b способно описывать
вертикальные и близкие к ним прямые.
Все точки находящиеся в одной полуплоскости будут при подстановке в уравнение прямой
давать числа с одинаковым знаком (например, только отрицательные или только положительные).
Пример задачи
Треугольник задан координатами своих вершин A, B и С. Для данной точки X определите,
находится ли она внутри, снаружи или на стороне треугольника.
Это пример того, что задачи о треугольниках являются «универсальными». Поскольку
любой многоугольник можно разбить на треугольники, то решение такой же задачи с
произвольным многоугольником можно свести к циклу по всем треугольникам.
Алгоритм решения этой задачи может быть таким:
1. Для каждой стороны найдем коэффициенты уравнения прямой
2. Подставим в найденное уравнение точку X и третью вершину:
a. если точка X и третья вершина лежат в разных полуплоскостях относительно
прямой, то точка находится вне треугольника (если это верно хотя бы для одной
стороны);
b. если точка X и третья вершина лежать в одной
X2
полуплоскости относительно прямой, то точка
находится внутри треугольника (если это верно
B
для всех сторон);
c. если точка X находится на прямой, то необходим
X1
анализ положения относительно других сторон
(см. рисунок – несмотря на то, что и X1 и X2
находятся на прямой, проходящей через сторону
AB, одного этого факта недостаточно, чтобы
A
решить что данные точки лежат на стороне).
C
МЦНМО, 2007/08 учебный год
Методика и содержание подготовки учащихся к олимпиадам по программированию.
Дистанционный курс.
Пересечение прямых. Метод Крамера
Из определения уравнения прямой следует, что точка пересечения двух прямых будет
удовлетворять обоим уравнениям, то есть являться решением системы.
Пусть дано две прямые
a1x + b1y + c1 = 0,
a2x + b2y + c2 = 0 и требуется определить координаты их точки пересечения (или выдать
сообщение, что это невозможно).
Задача сводится к решению системы двух линейных уравнений с двумя неизвестными.
Наиболее простым для реализации является метод Крамера. Рассказывать ли учащимся о том, что
такое определитель квадратной матрицы и каковы его свойства, или не рассказывать – зависит от
конкретных условий (наличие времени, возможности оставить это для преподавателей математики
и так далее). Здесь мы не будем разбирать подробно матрицы и их свойства, нас интересует
алгоритм решения задачи (то есть скорее ответ на вопрос «как?» чем «почему?»). Для учащихся
младших (например, 8) классов можно просто изложить алгоритм:
1. Пусть дана система уравнений вида (привести к этому виду систему уравнений двух
прямых нетрудно).
a11 x1  a12 x2  b1

a 21 x1  a 22 x 2  b2
(Первый индекс у коэффициентов a – это номер уравнения, второй – номер коэффициента в
уравнении. Индекс у коэффициента b – это номер уравнения).
2. Вычислим D
D  a11a22  a12 a21
Проанализируем полученное значение: если D=0, то система либо не имеет решений, либо
имеет бесконечно много решений.
Примеры таких систем:
2 x1  2 x 2  1
- данная система, на самом деле состоит всего из одного уравнения (второе

4 x1  4 x 2  2
уравнение это удвоенное первое), поэтому может иметь бесконечное множество решений.
 x1  x2  3
- данная система не имеет решений.

 x1  x2  10
3. Если D не равно нулю, то вычислим D1 и D2:
D1  b1a22  b2 a12
D2  a11b2  a21b1
4. Найдем решение системы:
D
x1  1 ;
D
D
x2  2
D
«Технические» задачи на закрепление материала
Для закрепления и детальной проработки этого материала школьниками часто применяется
большое количество «технических» задач, которые в будущем могут встретиться как элементы
более сложных заданий. Например:
МЦНМО, 2007/08 учебный год
Методика и содержание подготовки учащихся к олимпиадам по программированию.
Дистанционный курс.
1. Найти точку пересечения прямой и луча (здесь прямые могут пересекаться, но эта точка
может лежать за началом луча)
2. Найти точку пересечения прямой и отрезка.
3. Найти точку пересечения двух лучей.
4. Найти точки пересечения луча и отрезка
5. Найти точку пересечения двух отрезков.
МЦНМО, 2007/08 учебный год
Download