| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [Матан] Прогресии |
| Автор: Ak47black 14.3.2008, 16:11 |
| Здравствуйте. Помогите пожалуйста найти решение и понять как можно решить следующую задачку ![]() Мне очень интересно само решение (желательно как можно подробнее) |
| Автор: Christoph 14.3.2008, 18:25 | ||
| Тут есть небольщая закономерность.....последние числа строки увеличиваются на еденицу это 2,3,4,5,6....если например шестая строка, то послдений элемент будет на 6 меньше чем последний элемент пятой строки.. Теперь как бы придумать так чтоб находить последнией элемент строки....В голове что то крутиться но не могу додумать :( А если найти последний элемент, то вычиатем n, записываем в переменную, потом зная конечное число и первое в строке можно найти b=a2-a1; Ааа может так сделать
Дальше формулу суммы не помню.... |
| Автор: Ak47black 14.3.2008, 18:56 |
| Тут математика, а не паскаль. |
| Автор: Christoph 14.3.2008, 19:24 |
| Тут я расписал....как все сделать математически...а код вроде Си)) |
| Автор: Ak47black 15.3.2008, 12:23 |
| Ктонибудь может реально помоч? |
| Автор: Christoph 15.3.2008, 14:09 |
| Хм...а чем тебе моё решние не нравится? |
| Автор: under_sun 15.3.2008, 14:39 |
| 1) Найдем первое число, с которого начинается n-ая строка. Оно равно количеству чисел до n-ой строки + 1: a = (n-1)*(1 + (n-1))/2 + 1 2) Последнее число в n-ой строке равно b = a + n - 1. 3) Тогда по формуле суммы арифметической прогресси найдем сумму чисел в n-ой строке: S(n) = (a + b)*n/2 = (2a + n - 1)*n/2 = (n(n-1) + 2 + n - 1)*n/2 = (n^3 + n)/2 |
| Автор: Ak47black 16.3.2008, 18:57 |
| Чтото ответ несходится. У меня есть ответ Но я немогу понять как вывести формулу n-ой строки для последниго числа. ![]() |
| Автор: under_sun 17.3.2008, 13:03 | ||
Ответ сходится, просто у меня сначала находится первое число n-й строки, а потом последнее, а у тебя наоборот.
Последнее число в n-ой строке находится как количество чисел в этих n строках. Т.е. в первой - 1, во второй - 2 ... в n-ой - n. Поэтому в твоем ответе общее количество чисел в n-строках находят по сумме арифметической прогресии. |
| Автор: Ak47black 17.3.2008, 13:06 |
| Пардон Большое спасибо за помощь. + |
| Автор: Ak47black 17.3.2008, 15:44 | ||
| Я что-то всеровно немогу понять этот момент Как найти
Какую формулу следует использовать? |
| Автор: Ak47black 18.3.2008, 17:55 | ||
Можете ктонибудь описать
вот эту формулу, как вывести? |
| Автор: Aloha 18.3.2008, 19:30 |
| Ak47black Можно так рассуждать: Пусть у нас есть матрица (к примеру 4 х 4) вида: 1 0 0 0 2 3 0 0 4 5 6 0 7 8 9 10 (это та же твоя треугольная таблица, только дополненная нулями до квадратной матрицы). Последнее число последней строки в этой матрице =10. Причем интересно то, что в этой матрице ровно 10 ненулевых элементов. Т.е., если мы сможем подсчитать число ненулевых элементов в подобной матрице, мы узнаем, чему равен последний элемент последней строки. Всего в матрице 4*4 = 16 элементов. На главной диагонали 4 элемента. Тогда под главной диагональю (равно как и над ней) будет (4*4 – 4)/2 = 6 элементов – в нашем случае это: 2 4 5 7 8 9 А всего ненулевых элементов (4*4 – 4)/2 + 4 = 6 + 4 = 10 Т.о. в матрице n х n, устроенной по такому принципу как наша будет (n*n – n)/2 + n = (n² + n)/2 = n(n + 1)/2 ненулевых элементов. Другими словами, последний элемент в n-й строке в нашей треугольной таблице будет равен n(n + 1)/2. Дальше, в n-й строке n элементов и первый элемент отличается от последнего на (n – 1). Тогда первый элемент n-й строки будет равен: n(n + 1)/2 – (n – 1) = (n – 1)n/2 + 1 |
| Автор: under_sun 19.3.2008, 16:40 | ||||
Ранее я уже пытался объяснить, как найти послднее число в n-ой строке:
т.е. по формуле арифметической прогресии (1+n)n/2. в данном случае надо найти последнее число в n-1 строке - по той же формуле, заменив n на n-1. Прибавив 1, найдем первое число в n-ой строке. |
| Автор: Ak47black 20.3.2008, 16:29 |
| Спасибо что объяснили. |