Лень и последсвтия |
Здравствуйте, гость ( Вход | Регистрация )
Лень и последсвтия |
![]()
Сообщение
#1
|
|
![]() Ректор ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Member Сообщений: 9390 Регистрация: 22.7.2005 Из: library Пользователь №: 10 Поблагодарили: 3186 раз(а) Защита: 3472-8435-56-263 ![]() |
Что нужно делать, чтобы перестать лениться решать задачи по полной.
Например очередной мой залет Протейшая задача. Есть два массива точек. Для каждой точки из первого массива нужно найти несколько ближайших из второго массива. Что делает добропорядочный гражданин? Делает цикл по двум массивам, считает расстояния, выбирает минимальныеи получает удовольствие. И запустив программу понимает, что не полумал и не отпотимизировал ее как следует. А надо было бы хотя бы грубо оценить разлиие в координатах, ну хотя ба по модулю, чтобы понять считаьь расстояния или нет. А умные книжки говорили, что это даст усткорение в 80-120 раз. ибо считать расстояния наповерхности земли, учитывая ее неправильную форрму - не быстро. А два массива точек по миллиону точек в каждом... И вот как себя заставить сразу писать все правильно.... -------------------- Я Вернулся!!!!!!!
|
|
|
![]() |
![]()
Сообщение
#2
|
|
![]() Профессор ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Member Сообщений: 3465 Регистрация: 9.11.2010 Из: Уфа Пользователь №: 88100 Поблагодарили: 3888 раз(а) ![]() |
Что нужно делать, чтобы перестать лениться решать задачи по полной. Например очередной мой залет Протейшая задача. Есть два массива точек. Для каждой точки из первого массива нужно найти несколько ближайших из второго массива. Что делает добропорядочный гражданин? Делает цикл по двум массивам, считает расстояния, выбирает минимальныеи получает удовольствие. И запустив программу понимает, что не полумал и не отпотимизировал ее как следует. А надо было бы хотя бы грубо оценить разлиие в координатах, ну хотя ба по модулю, чтобы понять считаьь расстояния или нет. А умные книжки говорили, что это даст усткорение в 80-120 раз. ибо считать расстояния наповерхности земли, учитывая ее неправильную форрму - не быстро. А два массива точек по миллиону точек в каждом... И вот как себя заставить сразу писать все правильно.... О! Напомнило историю времён моего студенчества. Рисовал я программку для машинки с i286 (давно было, да) для рассчёта и вывода на экран графика распределения электронной плотности атома водорода. Программа работал, минут за 5-10 вырисовывала знакомую по книжкам кривую. И тут студента увидел Плавский Владимир Васильевич (с Больцмана очки снять — один-в-один выглядит). Почти за ухо завёл на кафедру и положил под нос сборник таблиц численного интегрирования по N точкам с заданной точностью… Программа стала работать внешне мгновенно, а урок был усвоен. Кстати, Плавскому принадлежит фраза, с которой я сейчас согласен полностью: «Программистов надо учить на Д3-28 c 32k памяти. Чтобы умели экономить каждый байт и каждый такт». (IMG:http://www.sgtnd.narod.ru/science/nummeth/img/d3-28.jpg) |
|
|
![]()
Сообщение
#3
|
|
![]() Ректор ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Member Сообщений: 9390 Регистрация: 22.7.2005 Из: library Пользователь №: 10 Поблагодарили: 3186 раз(а) Защита: 3472-8435-56-263 ![]() |
Кстати, Плавскому принадлежит фраза, с которой я сейчас согласен полностью: «Программистов надо учить на Д3-28 c 32k памяти. Чтобы умели экономить каждый байт и каждый такт». Как все знакомо. Но вот я же говорю - человек расслабляется и начинает лениться.... О, у меня уже пол миллиона их трех посчиталось (IMG:style_emoticons/default/total_sc.gif) Сейчас сижу перед выбором. Или домашний комп починить, и добавить его в рассчеты - сдох системный диск, или все-таки прооптимизровать программу.... Конечно в идеале ее надо на видеокарточку вешать - но это мечты. -------------------- Я Вернулся!!!!!!!
|
|
|
![]()
Сообщение
#4
|
|
![]() Профессор ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Member Сообщений: 3465 Регистрация: 9.11.2010 Из: Уфа Пользователь №: 88100 Поблагодарили: 3888 раз(а) ![]() |
Конечно в идеале ее надо на видеокарточку вешать - но это мечты. При «вешании» чего-то на видеокарточку надо твёрдо быть уверенным, что овчинка стоит выделки. То есть, что затраты времени на это вот «вешание» не превысят сэкономленное на самом счёте. Ну и про классы задач по времени выполнения не стоит забывать. В качестве примера: задача, которая считает 16 часов и задача, которая считает 7 часов, — это задачи одного — «суточного» — класса. То есть фактически, запустив каждую из них сегодня, результат вы будете обрабатывать завтра — «через сутки счёта». И тратить силы, чтобы привести скорость счёта первой программы к скорости второй нет необходимости. Не окупится никак. |
|
|
![]()
Сообщение
#5
|
|
![]() Ректор ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Member Сообщений: 9390 Регистрация: 22.7.2005 Из: library Пользователь №: 10 Поблагодарили: 3186 раз(а) Защита: 3472-8435-56-263 ![]() |
Мне прислали
QUOTE Вот поэтому преподавателей в программисты и не берут. Они вместо того, что бы проинтегрировать методом эйлера за пять минут, будут сидеть и программировать метод дорманд-принца в обобщении на произвольное количество точек. Классическое программистское решение этой проблемы, кстати, это не сидение за таблицами численного интегрирования, а поиск опенсорсной библиотеки.
-------------------- Я Вернулся!!!!!!!
|
|
|
![]()
Сообщение
#6
|
|
![]() Профессор ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Member Сообщений: 3465 Регистрация: 9.11.2010 Из: Уфа Пользователь №: 88100 Поблагодарили: 3888 раз(а) ![]() |
|
|
|
![]() ![]() |
Текстовая версия | Сейчас: 1.05.2025, 23:48 |