Другие языки программирования и технологии

В каждом столбце матрицы найти наибольшую группу подряд идущих элементов, образующих арифметическую прогрессию c++

Jurij Vasiljev
Jurij Vasiljev
1 561
руки чешутся написать задачу, но так как автор вопроса принял решение мной одной его задачи бредом (думаю там вставить код и откомпилировать осталось) , решать не буду.
скажу только что можно а) сократить количество переборов и б) выбрать для перебора начало и шаг; с помощью простой операции и постулата:
1. последовательность должна состоять из трех и более чисел (так как два любых числа можно назвать последовательностью с началом в A[ i ] и шагом в a[ i+1] - a[ i ]).
2. сделать цикл от второго элемента до предпоследнего и найти такой индекс цикла, при котором A[ i ] - A[ i-1 ] == A[ i+1 ] - A[ i ]
если равенство выполняется - вызвать функцию дальнейшего разбора последовательности. параметры функции - начальный индекс i - 1, шаг A[ i ] - A[ i-1] функция вернет длинну последовательности.
осталось найти только MAX(func())...
Арман Турганбаев
Арман Турганбаев
17 300
Лучший ответ
Jurij Vasiljev спасибо, я не считаю ту твою прогу бредом, но она действительно написанна не в моём стиле, к тому же походу ты не так понял условие "Идея такая - массив A[10] - целочисленный. Обнуляешь вначале, потом как цифры находишь - прибавляешь A[ цифра ] - в конце в цикле О(10) перебираешь - если хоть в одном элементе число равно числу элементов массива - ответ - есть общая цифра. Сейчас нарисую. " она впринципе то работает, другой вопрос что непонятно каким образом работает, нет единой логической цепочки, лишь набор зарисовок
сначала определить шаг потом проверять.. .
сначала определить шаг потом проверять.. .
сначала определить шаг потом проверять.. .
сначала определить шаг потом проверять.. .

тут только полным перебором простого решения для этой задачи нет
AF
Andrey Fesenko
19 740
Jurij Vasiljev полным перебором это как?
чисто советую скачать аццкую книжку кормен, лейзерсон, ривест "алгоритмы, постоение и анализ". она и вообще вещь очень полезная, а в данном случае - посмотри, что он про динамическое программирование пишет.
Егорка
Егорка
2 643
Можно попробовать составить массив из коэффициентов прогрессии для всех пар mas [ i } и mas [ i+1 ] , а после этого искать в нем самую длинную цепочку одинаковых чисел...

Похожие вопросы