IPB                

Здравствуйте, гость ( Вход | Регистрация )


ФорУм - для ума ©
БСЭ; DJVU Библиотека - Основное книгохранилище
Лень и последсвтия
Librarian
сообщение 27.01.2017, 19:10
Сообщение #1


Ректор
********

Группа: Member
Сообщений: 9390
Регистрация: 22.7.2005
Из: library
Пользователь №: 10
Поблагодарили: 3186 раз(а)

Защита: 3472-8435-56-263


Что нужно делать, чтобы перестать лениться решать задачи по полной.
Например очередной мой залет
Протейшая задача.
Есть два массива точек.
Для каждой точки из первого массива нужно найти несколько ближайших из второго массива.

Что делает добропорядочный гражданин?
Делает цикл по двум массивам, считает расстояния, выбирает минимальныеи получает удовольствие.

И запустив программу понимает, что не полумал и не отпотимизировал ее как следует.

А надо было бы хотя бы грубо оценить разлиие в координатах, ну хотя ба по модулю, чтобы понять считаьь расстояния или нет. А умные книжки говорили, что это даст усткорение в 80-120 раз. ибо считать расстояния наповерхности земли, учитывая ее неправильную форрму - не быстро.
А два массива точек по миллиону точек в каждом...

И вот как себя заставить сразу писать все правильно....


--------------------
Я Вернулся!!!!!!!
Перейти в начало страницы
+Цитировать сообщение
 
Начать новую тему
Ответов (1 - 5)
Const
сообщение 28.01.2017, 15:27
Сообщение #2


Профессор
*******

Группа: Member
Сообщений: 3460
Регистрация: 9.11.2010
Из: Уфа
Пользователь №: 88100
Поблагодарили: 3888 раз(а)




Цитата(Librarian @ 27.01.2017, 21:10) *
Что нужно делать, чтобы перестать лениться решать задачи по полной.
Например очередной мой залет
Протейшая задача.
Есть два массива точек.
Для каждой точки из первого массива нужно найти несколько ближайших из второго массива.

Что делает добропорядочный гражданин?
Делает цикл по двум массивам, считает расстояния, выбирает минимальныеи получает удовольствие.

И запустив программу понимает, что не полумал и не отпотимизировал ее как следует.

А надо было бы хотя бы грубо оценить разлиие в координатах, ну хотя ба по модулю, чтобы понять считаьь расстояния или нет. А умные книжки говорили, что это даст усткорение в 80-120 раз. ибо считать расстояния наповерхности земли, учитывая ее неправильную форрму - не быстро.
А два массива точек по миллиону точек в каждом...

И вот как себя заставить сразу писать все правильно....

О!
Напомнило историю времён моего студенчества.
Рисовал я программку для машинки с i286 (давно было, да) для рассчёта и вывода на экран графика распределения электронной плотности атома водорода.
Программа работал, минут за 5-10 вырисовывала знакомую по книжкам кривую.
И тут студента увидел Плавский Владимир Васильевич (с Больцмана очки снять — один-в-один выглядит). Почти за ухо завёл на кафедру и положил под нос сборник таблиц численного интегрирования по N точкам с заданной точностью…

Программа стала работать внешне мгновенно, а урок был усвоен.

Кстати, Плавскому принадлежит фраза, с которой я сейчас согласен полностью: «Программистов надо учить на Д3-28 c 32k памяти. Чтобы умели экономить каждый байт и каждый такт».
(IMG:http://www.sgtnd.narod.ru/science/nummeth/img/d3-28.jpg)
Перейти в начало страницы
+Цитировать сообщение
Librarian
сообщение 28.01.2017, 22:23
Сообщение #3


Ректор
********

Группа: Member
Сообщений: 9390
Регистрация: 22.7.2005
Из: library
Пользователь №: 10
Поблагодарили: 3186 раз(а)

Защита: 3472-8435-56-263


QUOTE (Const @ 28.01.2017, 12:27) *
Кстати, Плавскому принадлежит фраза, с которой я сейчас согласен полностью: «Программистов надо учить на Д3-28 c 32k памяти. Чтобы умели экономить каждый байт и каждый такт».

Как все знакомо. Но вот я же говорю - человек расслабляется и начинает лениться....
О, у меня уже пол миллиона их трех посчиталось (IMG:style_emoticons/default/total_sc.gif)
Сейчас сижу перед выбором. Или домашний комп починить, и добавить его в рассчеты - сдох системный диск, или все-таки прооптимизровать программу.... Конечно в идеале ее надо на видеокарточку вешать - но это мечты.


--------------------
Я Вернулся!!!!!!!
Перейти в начало страницы
+Цитировать сообщение
Const
сообщение 29.01.2017, 7:48
Сообщение #4


Профессор
*******

Группа: Member
Сообщений: 3460
Регистрация: 9.11.2010
Из: Уфа
Пользователь №: 88100
Поблагодарили: 3888 раз(а)




Цитата(Librarian @ 29.01.2017, 0:23) *
Конечно в идеале ее надо на видеокарточку вешать - но это мечты.

При «вешании» чего-то на видеокарточку надо твёрдо быть уверенным, что овчинка стоит выделки.
То есть, что затраты времени на это вот «вешание» не превысят сэкономленное на самом счёте.

Ну и про классы задач по времени выполнения не стоит забывать.
В качестве примера: задача, которая считает 16 часов и задача, которая считает 7 часов, — это задачи одного — «суточного» — класса. То есть фактически, запустив каждую из них сегодня, результат вы будете обрабатывать завтра — «через сутки счёта». И тратить силы, чтобы привести скорость счёта первой программы к скорости второй нет необходимости. Не окупится никак.
Перейти в начало страницы
+Цитировать сообщение
Librarian
сообщение 31.01.2017, 6:52
Сообщение #5


Ректор
********

Группа: Member
Сообщений: 9390
Регистрация: 22.7.2005
Из: library
Пользователь №: 10
Поблагодарили: 3186 раз(а)

Защита: 3472-8435-56-263


Мне прислали
QUOTE
Вот поэтому преподавателей в программисты и не берут. Они вместо того, что бы проинтегрировать методом эйлера за пять минут, будут сидеть и программировать метод дорманд-принца в обобщении на произвольное количество точек. Классическое программистское решение этой проблемы, кстати, это не сидение за таблицами численного интегрирования, а поиск опенсорсной библиотеки.


--------------------
Я Вернулся!!!!!!!
Перейти в начало страницы
+Цитировать сообщение
Const
сообщение 31.01.2017, 15:17
Сообщение #6


Профессор
*******

Группа: Member
Сообщений: 3460
Регистрация: 9.11.2010
Из: Уфа
Пользователь №: 88100
Поблагодарили: 3888 раз(а)




Цитата(Librarian @ 31.01.2017, 8:52) *
Мне прислали

Тоже плохой подход: найти библиотеку, разобраться в ней и убедиться, что косяков нет по времени может быть гораздо накладнее, чем накидать и посчитать код в том же матлабе. Или написать хороший код и вылизать.
Перейти в начало страницы
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 19.10.2017, 22:58


Rambler's Top100