Mail.ruПочта0Мой Мир0ОдноклассникиВКонтактеИгры0ЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как научиться придумывать алгоритмы и решать задачи?

Маркус Амбрелла Ученик (22), открыт 1 неделю назад
Коллеги, у меня есть реальный шанс увеличить з/п, если внутри компании переведусь в разработку на Java.
Собственно, сам синтаксис не вызывает сложности. У меня другая проблема: не умею решать задачи. Почти всегда, за исключением фигни типа "вывести массив/матрицу", "найти min и max число" и т.п.
Вот, сегодня попалась задача:
Написать программу, которая запрашивает число N и выводит первые N чисел последовательности
Фибоначчи (N первых чисел: 0, 1, 1, 2, 3, 5, 8, ...)
Я вообще только узнал, что такое число Фибоначчи. Но как с этим работать - без понятия. Смотрю на условие задачи и как идиот, ничего в голове родить не могу. И так всегда. Синтаксис языка Java, как инструмент, я освоил, но пользоваться этим инструментом не умею. Я не умею решать задачи... У меня проблемы с абстрактно-логическим и алгоритмическим мышлением.
Такое лечится? Решил изучать математику с 7 по 11 класс. Возможно, это поможет прокачать мозг... Также хотел приступить к алгоритмам и стр-рам данных Н. Вирта, но понял там очень мало. Не хватает пререквизитов - базовых знаний по математике и правильно настроенных мозгов.
Помогите советом! Премного благодарен!
7 ответов
Литвин Фитнесов Ученик (154) 1 неделю назад
тут надо искать одно из концетрированных чисел и по коду упразднять фибоначчи, обычно это делается быстро не составляет труда, впрочем все как и делал Беслан Друид
Krab Bark Искусственный Интеллект (299604) 1 неделю назад
Ну так это и есть изучение программирования. А язык программирования - всего лишь система условных обозначений для записи того, что в голове у программиста :) Читай книги по алгоритмам.
Маркус АмбреллаУченик (22) 1 неделю назад
Да, согласен) Вот только проблемки с этим. Помимо Вирта есть что-нибудь годное? Чувствую, что базы не хватает. Он часто там оперирует математикой... Придётся уже для таких книг математику подтягивать.
Сказали уже: читать книги по алгоритмике и прежде всего мировую и отечественную классику! Нам в школе советовали Окулова ("Мышление в алгоритмах"), Потопахина ("Решение сложных задач"), Вирта, Ахо-Ульмана-Хопкрофта, Кнута (только то́м, посвящённый синтаксическим алгоритмам вроде ещё не переведён, поэтому по синтаксической алгоритмике надо изучать что-то другое), Кормена-Лейзерсона-Ривеста-Штайна, Голуба, Левитина и т.д. Довольно много литературы по отдельным темам: расчётные техники, моделирование на ЭВМ (компьютерная симуляция), интернет-технологии (в т.ч. интеллектуальные), AI/IS, BigData&Geostatistics, etc. - но это уж Вам выбирать что конкретно из этого всего Вам лично нужно...
Олег Дипникович Гуру (3585) 1 неделю назад
Решайте задачки по программированию. Начинайте с лёгких
Андрей Высший разум (479866) 1 неделю назад
Начни с учебников программирования для начинающих:

Вирт, "Алгоритмы и структуры данных"
Кормен, "Алгоритмы. Вводный курс".

И нет, школьная математика не поможет. Нужна дискретная математика. Целые числа, матлогика, множества, графы и т.д. - это всё подразделы дискретной математики.

Что касается чисел Фибоначчи, то тут удобнее всего использовать динамическое программирование: когда мы движемся от старта к финишу, на каждом шаге вычисляя новое значение:
 F[0] = 0
F[1] = 1
F[2] = F[0] + F[1]
F[3] = F[1] + F[2]
F[4] = F[3] + F[4]
...
F[N] = F[N - 2] + F[N - 1]
Маркус АмбреллаУченик (22) 1 неделю назад
Благодарю Вас за совет! Но всё равно, чувствую что знаний школьной математики не хватает. Почитал, наверное, четверть книги Вирта. Понял не очень многое: он там уже оперирует математикой. Придётся подтягивать,
А по дискретке есть какие-нибудь годные книги, зарекомендовавшие себя в глазах специалистов?
Андрей Высший разум (479866) Маркус Амбрелла, Слишком давно учился и с современными учебниками не знаком. На слуху только "Конкретная математика" Кнута, но там далеко не все темы.
Джек Барден Знаток (380) 1 неделю назад
Читать Кнута иногда перед сном. Но мне больше настоящая математика нравится, то есть - непрерывная
Алекс Куха Высший разум (474431) 1 неделю назад
Мозг "прокачать", увы, не получится, это не мышца. Что природа дала, с тем и придётся жизнь прожить.
Можно много времени потратить на те же источники, но и времени потребуется больше и результат окажется нулевым. Там, где одни пролистывают матчасть за час-другой, другим требуются дни
Саша Мультибоев Мастер (1815) 3 дня назад
Если совсем 0, то Грокаем алгоритмы прочитай, очень хорошая книжка
Похожие вопросы