А давайте порассуждаем. Пусть дан N-угольник, причём, ВЫПУКЛЫЙ N-угольник. Пронумеруем его вершины по k от 1 до N. <span>Очевидно, что каждая сторона многоугольника связывает две соседние вершины, так ведь? Это означает, что если мы возьмём k-ую вершину, то у неё есть два ближайших соседа - это (k+1)-ая вершина и (k-1)-ая. и с этими соседями k-ая вершина связана двумя сторонами многоугольника. Пока понятно, надеюсь? </span> <span>ну а дальше просто. единственный выпуклый многоугольник, который не имеет диагоналей, - это треугольник, так ведь? у треугольника все вершины связаны сторонами треугольника, и никакими другими прямыми линиями мы не можем связать вершины. </span> <span>следовательно, для подсчёта количества диагоналей в выпуклом N-угольнике надо вычесть количество треугольников (каждый из которых построен по соседним k, k+1 и k-1 вершинам) из общего количества прямых линий, которые мы можем провести от k-ой вершины до всех остальных N-1 вершин. </span> <span>Количество треугольников посчитать несложно - оно равно количеству вершин, т. е. N штук треугольников. Теперь посчитаем количество прямых линий от k-ой вершины до остальных N-1 вершин. Очевидно, что оно равно N-1 прямых линий (с учётом сторон N-угольника) .тогда для N вершин имеем </span> <span>N * ( N - 1 ) (1) </span> <span>штук прямых линий. теперь учтём, что каждую такую линию мы посчитали дважды (когда проводили её от k-ой вершины к m-ой и снова от m-ой вершины к k-ой) и поделим выражение (1) пополам: </span> <span>N * ( N - 1 ) / 2. </span> <span>ну вот, а теперь из этого вычтем кол-во треугольников, получим кол-во диагоналей Ld: </span> <span>Ld = N * ( N - 1 ) / 2 - N = ( N * N - N - 2 * N ) / 2 = N * ( N - 3 ) / 2. </span>