Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Матан] Прогресии


Автор: Ak47black 14.3.2008, 16:11
Здравствуйте.
Помогите пожалуйста найти решение и понять как можно решить следующую задачку 
user posted image
Мне очень интересно само решение (желательно как можно подробнее)

Автор: Christoph 14.3.2008, 18:25
Тут есть небольщая закономерность.....последние числа строки увеличиваются на еденицу это 2,3,4,5,6....если например шестая строка, то послдений элемент будет на 6 меньше чем последний элемент пятой строки..
Теперь как бы придумать так чтоб находить последнией элемент строки....В голове что то крутиться но не могу додумать :( А если найти последний элемент, то вычиатем n, записываем в переменную, потом зная конечное число и первое в строке можно найти b=a2-a1;
Ааа может так сделать
Код

for (i=1, k=0;i!=n;i++,k++) // n - номер строки
{
 A1[i+1]=i+k;
 x=A1[i+1]; // запоминаем последее число
}
y1=x-n; // первое число строки
y2=y+1; // Второе чилос строки
b=y2-y1; // подсчитываем b


Дальше формулу суммы не помню....

Автор: Ak47black 14.3.2008, 18:56
Тут математика, а не паскаль.  smile 

Автор: Christoph 14.3.2008, 19:24
Тут я расписал....как все сделать математически...а код вроде Си))

Автор: Ak47black 15.3.2008, 12:23
Ктонибудь может реально помоч?

Автор: Christoph 15.3.2008, 14:09
Хм...а чем тебе моё решние не нравится?  smile 

Автор: 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-ой строки для последниго числа.
user posted image

Автор: Optimus 16.3.2008, 23:26
Цитата(Ak47black @  16.3.2008,  18:57 Найти цитируемый пост)
Чтото ответ несходится.

Код

(n^3 + n)/2 = ((n^2 + 1)n)/2


Цитата(Ak47black @  16.3.2008,  18:57 Найти цитируемый пост)
Но я немогу понять как вывести формулу n-ой строки для последниго числа.

Цитата(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.


Автор: under_sun 17.3.2008, 13:03
Цитата(Ak47black @  16.3.2008,  18:57 Найти цитируемый пост)
Чтото ответ несходится.

Ответ сходится, просто у меня сначала находится первое число n-й строки, а потом последнее, а у тебя наоборот.
Цитата(Ak47black @  16.3.2008,  18:57 Найти цитируемый пост)
Но я немогу понять как вывести формулу n-ой строки для последниго числа.

Последнее число в n-ой строке находится как количество чисел в этих n строках.
Т.е. в первой - 1, во второй - 2 ... в n-ой - n. Поэтому в твоем ответе общее количество чисел в n-строках находят по сумме арифметической прогресии.

Автор: Ak47black 17.3.2008, 13:06
Пардон  smile 
Большое спасибо за помощь. + 

Автор: Ak47black 17.3.2008, 15:44
Я что-то всеровно немогу понять этот момент
Как найти
Цитата

количеству чисел до n-ой

Какую формулу следует использовать?

Автор: Ak47black 18.3.2008, 17:55
Можете ктонибудь описать
Цитата

1) Найдем первое число, с которого начинается n-ая строка.
Оно равно количеству чисел до n-ой строки + 1: a = (n-1)*(1 + (n-1))/2 + 1

вот эту формулу, как вывести?

Автор: 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
Цитата(Ak47black @  18.3.2008,  17:55 Найти цитируемый пост)

1) Найдем первое число, с которого начинается n-ая строка.
Оно равно количеству чисел до n-ой строки + 1: a = (n-1)*(1 + (n-1))/2 + 1

вот эту формулу, как вывести?

Ранее я уже пытался объяснить, как найти послднее число в n-ой строке:
Цитата(under_sun @  17.3.2008,  13:03 Найти цитируемый пост)
Последнее число в n-ой строке находится как количество чисел в этих n строках.
Т.е. в первой - 1, во второй - 2 ... в n-ой - n. Поэтому в твоем ответе общее количество чисел в n-строках находят по сумме арифметической прогресии. 

т.е. по формуле арифметической прогресии (1+n)n/2.
в данном случае надо найти последнее число в n-1 строке - по той же формуле, заменив n на n-1.
Прибавив 1, найдем первое число в n-ой строке. 

Автор: Ak47black 20.3.2008, 16:29
 smile  Ну туговато, но понял.
Спасибо что объяснили.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)