Форум «Всё о Паскале» _ Математика _ Сколько существует треугольников?
Автор: 18192123 26.03.2007 16:41
Сколько существует треугольников, длины сторон которых принимают значения из множества 4, 5, 6, 7?
Как я полагаю, мы имеем дело с ........ с повторениями; но не могу отличить это размещения с повторениями или сочетания с повторениями... как объяснить, о чём речь в моей задаче?
Автор: Michael_Rybak 27.03.2007 2:07
s := 0;
for i := 4 to 7 do for j := i to 7 do for k := j to 7 do if i + j > k then inc(s);
Разбирайся.
Автор: 18192123 27.03.2007 2:59
Цитата(Michael_Rybak @ 26.03.2007 23:07)
s := 0;
for i := 4 to 7 do for j := i to 7 do for k := j to 7 do if i + j > k then inc(s);
Разбирайся.
мне не код нужен, а логические рассуждения, вытекающие из определений размещений, сочетаний....
Автор: Jenkins 27.03.2007 3:53
1 :У треугольника сумма любых 2х сторон больше третьей стороны. 2 :мин + мин сравним с макс - 4+4 >7 (подходят все) 3 :нужно перебрать любые сочетания сповторениями 4 :формула (n+m-1)!/(m!(n-1)!) 5 :ответ (4+3-1)/(4!(3-1)!)=720/48=15 тебе сюда http://e-lib.gasu.ru/eposobia/deev/KOMBINA.HTM#1.7
Автор: Lapp 27.03.2007 3:58
Цитата(Michael_Rybak @ 26.03.2007 22:07)
if i + j > k then inc(s);
Разбирайся.
Одно из двух: либо это условие лишнее (учитывая конкретные данные), либо сюда нужно добавить |i-j| < k (в расчете на общность решения). Кроме того - в разделе Математика желательно избегать программирования..
Добавлено через 3 мин.
Цитата(Jenkins @ 26.03.2007 23:53)
1 :У треугольника сумма любых 2х сторон больше третьей стороны. 2 :мин + мин сравним с макс - 4+4 >7 (подходят все)
Неплохо бы хотя бы упомянуть о втором условии: |a-b|<c. Чем оно хуже? В этих условиях, выполняется оно тоже всегда (т.к. |7-4|<4 )
Автор: Michael_Rybak 27.03.2007 17:36
Jenkins: перепутал m и n; ответ 20 получается. И ссылку не на 1.7 а на 1.9 надо ("Пример 27. В почтовом отделении имеются открытки 3 видов. Сколькими способами можно купить набор из 5 открыток?").
Цитата
Одно из двух: либо это условие лишнее (учитывая конкретные данные), либо сюда нужно добавить |i-j| < k (в расчете на общность решения).
В расчете на общность решения не нужно добавлять У нас ведь i <= j <= k, поэтому всегда достаточно проверить i + j > k.
Цитата
Кроме того - в разделе Математика желательно избегать программирования..
Та я вообще удалил бы, не удаляю чтобы тред не портить. Виноват.
Автор: Jenkins 28.03.2007 1:24
Цитата(Michael_Rybak @ 27.03.2007 14:36)
Jenkins:
да , всамом деле тут будет (4+3-1)!/(3!(4-1)!)=720/36=20 .
Автор: Lapp 28.03.2007 4:13
Цитата(Michael_Rybak @ 27.03.2007 14:36)
У нас ведь i <= j <= k, поэтому всегда достаточно проверить i + j > k.