powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Нужны ли в работе алгоритмы?
108 сообщений из 108, показаны все 5 страниц
Нужны ли в работе алгоритмы?
    #36180308
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нужно ли в повседневной работе программиста знание алгоритмов? Под алгоритмами ,я подразумеваю, сложные математически обоснованные наборы инструкций, всегда приводящие к результату. Ведь, наверняка, можно писать даже коммерческие программы, без особого представления о "сложности алгоритма", "структурах данных" и пр. К примеру, с этим я сталкивался в программировании баз данных(правда небольшие проекты). Хочется услышать мнения людей, основанные на их личном опыте.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180326
Фотография RT183.1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По большому счету -- не нужны.
Я при всем моем уважении к Кнуту в руках не держал его книжки.
Во-первых, они очень дорогие,
во-вторых, там довольно сложная математика
для реальной работы -- ну это примитив такой что нет слов.
Я поэтому и ненавижу эту работу и рутину
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180328
Фотография RT183.1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> примитив

Я имел в виду работу, а не книги Кнута
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180360
Coddo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас среди программистов и людей близких к этой профессии бытует мнение, якобы подобное никому не нужно.

На самом деле это не так. Никто не будет оспаривать тот факт, что в сложных научных или просто крупных проектах (например, abby, google...) используются многие алгоритмы (если не большинство из них), известные из книг Кнута, Кормена, Шеня и пр., а также математические алгоритмы, возможно, некоторые из вычислительной геометрии (теоретического материала по которой крайне мало), но в действительности они нужны и в прикладном программировании (хоть и не так часто).

А знание или хотя бы небольшой опыт в работе с алгоритмами, для которых важна скорость их выполнения (грубо говоря, сложность), приводит к хорошей привычке оптимизации как по памяти, так и по скорости. Хороший пример незнания самых основ алгоритмического программирования -- индийский код.

Самое печальное, что сейчас ещё есть мнение, что знания программиста оцениваются в кол-ве изученных им языков. Да не так это! Как программист может называться программистом, если он знает 20 языков, а программировать, фактически, не умеет ни на одном? Это же как сишник, не знающий stl...

Лично я не знаю, когда что-то в мире переломилось (видимо, с приходом ООП) и люди забыли, что под программированием как раз и понимается алгоритмическое мышление, умение составить работающий оптимизированный алгоритм и лишь потом написать код.

И началась эра программистов-сисадминов. Пьёшь пиво, носишь очки, сидишь неделями у компа, знаешь асм, хаскелл, эрланг (или какой-нибудь брейнфак, который на самом деле для практических целей используется только извращенцами, а создан, как реализация всем известной машины Тьюринга... но им же пофиг)? Тогда ты программер! Так чтобы не было такого, уж простите, быдла среди программистов, программист должен быть сначала математиком и инженером, а только потом кодером.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180365
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикА нужно ли в повседневной работе программиста знание алгоритмов? Под алгоритмами ,я подразумеваю, сложные математически обоснованные наборы инструкций, всегда приводящие к результату. Ведь, наверняка, можно писать даже коммерческие программы, без особого представления о "сложности алгоритма", "структурах данных" и пр. К примеру, с этим я сталкивался в программировании баз данных(правда небольшие проекты). Хочется услышать мнения людей, основанные на их личном опыте.
Все зависит от вашей будущей специализации в программировании. Если будете заниматься математическим и компьютерным моделированием реальных процессов, то без математики шагу не ступишь, а если обычным прикладным программированием, типа разработка различных клиентов (почтовых, баз данных и т.д.) под управлением существующих библиотек БД, то достаточно математики на уровне 4-го класса. Вон меня всегда удивляло, что например бухгалтера не знают простейших правил округления, для них тайна за семью печатями, почему сумма округлений, не равна округлению суммы. Кроме 4-х действий арифметики, других они не знают. Скажем, применение налогового метода амортизации в бухгалтерском учете. Коэффициент налоговой амортизации определяется как квартальный (для налогового учета) и чтобы из него получить месячный коэффициент (для бухгалтерского учета) бухгалтера тупо делят его на 3. Только одна-единственная тетя на всех бухгалтерских Интернет форумах засомневалось в этом, так ее быстро зашугали, ты чё типа, совсем «очевидных» вещей не понимаешь? А для меня «очевидно», что месячный коэффициент следует из квартального по формуле Кмес = 1 - (1 - Ккв)^(1/3) , а не по формуле теть-бухгалтеров Кмес = Ккв/3 . Именно эта формула позволила мне запрограммировать квартальный (налоговый) учет ОС, как ежемесячный (бухгалтерский), с тем же эффектом. А сделано это с целью единообразия форм документов и используемых алгоритмов (правда, ценной, некоторого увеличения объема базы данных).

Что до алгоритмов, то например я уже несколько дней вожусь с одним нелинейным алгоритмом сортировки на базе natural merge sort . Так вот «линейные» реализации этого алгоритма получены достаточно легко и просто и работают без проблем. А «нелинейная» реализация, при кажущейся простоте, реализована пока только на 99%. А последний процент меня уже измотал :) .

Если вы работали с IdaPro , то там есть программа wingraph32.exe , которая строит блок схемы дизассемблерного кода. Очень классная вещь! В Интернете есть ее исходные тексты на чистом Си. Только без знания алгоритмов построения блок схем они дают мало пользы. А вообще-то эту программу хотелось бы улучшить, жаль только, что у меня другая специализация :) .
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180367
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знавал я одного программиста, который ... в общем, говорит мне: "че-то Дельфа твоя не работает как следует. Делаю цикл, и комп виснет. ". Далее выясняется, что цикл у него от 1 и до 100! (100 факториал). То есть, он не имел представления ни о том, насколько велико число 100!, ни о том, можно ли его вообще вместить в некий integer... и о многом другом. Его задача была связана с оптимальным раскроем материала, а он до этого клепал формочки в Акцесе.

И вообще, математика и алгоритмы - это и есть программирование, это - подход. А кодирование, это- семечки.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180389
S.G.Знавал я одного программиста, который ... в общем, говорит мне: "че-то Дельфа твоя не работает как следует. Делаю цикл, и комп виснет. ". Далее выясняется, что цикл у него от 1 и до 100! (100 факториал). То есть, он не имел представления ни о том, насколько велико число 100!, ни о том, можно ли его вообще вместить в некий integer... и о многом другом.Чёто какой-то странный у тебя дельфишник, или ты троллишь. Нормальный дельфишник за 10 минут нашел бы компанент решающий его задачу и еще за полчаса сделал бы форму с программой и этим компонентом. Всего-то делов.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180391
S.G.Знавал я одного программиста, который ... в общем, говорит мне: "че-то Дельфа твоя не работает как следует. Делаю цикл, и комп виснет. ". Далее выясняется, что цикл у него от 1 и до 100! (100 факториал). То есть, он не имел представления ни о том, насколько велико число 100!, ни о том, можно ли его вообще вместить в некий integer... и о многом другом.Чёто какой-то странный у тебя дельфишник, или ты троллишь. Нормальный дельфишник за 10 минут нашел бы компанент решающий его задачу и еще за полчаса сделал бы форму с программой и этим компонентом. Всего-то делов.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180395
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
механизаторЧёто какой-то странный у тебя дельфишник, или ты троллишь. Нормальный дельфишник за 10 минут нашел бы компанент решающий его задачу и еще за полчаса сделал бы форму с программой и этим компонентом. Всего-то делов.Это распространенное заблуждение среди механизаторов. Нормальные дельфишники обычно кодят, когда решают нестандартную задачу. КомпОненты они пользуют только для стандартных фич.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180396
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EmeryЧто до алгоритмов, то например я уже несколько дней вожусь с одним нелинейным алгоритмом сортировки на базе natural merge sort . Так вот «линейные» реализации этого алгоритма получены достаточно легко и просто и работают без проблем. А «нелинейная» реализация, при кажущейся простоте, реализована пока только на 99%. А последний процент меня уже измотал :) .
Ну вот, стоило объявить во всеуслышание о проблеме «последнего процента» и он успешно достигнут! Почти мистика :) . Так что свой нелинейный алгоритм natural merge sort я реализовал полностью, на 100%. Можно идти дальше :) .
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180474
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RT183.1По большому счету -- не нужны.
Я при всем моем уважении к Кнуту в руках не держал его книжки.
Во-первых, они очень дорогие,
во-вторых, там довольно сложная математика
для реальной работы -- ну это примитив такой что нет слов.
Я поэтому и ненавижу эту работу и рутину

Вот-вот... И у меня сложилось аналогичное мнение. Изучай алгоритмы, не изучай, а в основном вся работа в большинстве своем требует лишь знаний в предметной области(бух. учет, базы данных в основном SQL и прочее), да навыков работы со средой программирования.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180482
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CoddoСейчас среди программистов и людей близких к этой профессии бытует мнение, якобы подобное никому не нужно.

На самом деле это не так. Никто не будет оспаривать тот факт, что в сложных научных или просто крупных проектах (например, abby, google...) используются многие алгоритмы (если не большинство из них), известные из книг Кнута, Кормена, Шеня и пр., а также математические алгоритмы, возможно, некоторые из вычислительной геометрии (теоретического материала по которой крайне мало), но в действительности они нужны и в прикладном программировании (хоть и не так часто).

А знание или хотя бы небольшой опыт в работе с алгоритмами, для которых важна скорость их выполнения (грубо говоря, сложность), приводит к хорошей привычке оптимизации как по памяти, так и по скорости. Хороший пример незнания самых основ алгоритмического программирования -- индийский код.

Самое печальное, что сейчас ещё есть мнение, что знания программиста оцениваются в кол-ве изученных им языков. Да не так это! Как программист может называться программистом, если он знает 20 языков, а программировать, фактически, не умеет ни на одном? Это же как сишник, не знающий stl...

Лично я не знаю, когда что-то в мире переломилось (видимо, с приходом ООП) и люди забыли, что под программированием как раз и понимается алгоритмическое мышление, умение составить работающий оптимизированный алгоритм и лишь потом написать код.

И началась эра программистов-сисадминов. Пьёшь пиво, носишь очки, сидишь неделями у компа, знаешь асм, хаскелл, эрланг (или какой-нибудь брейнфак, который на самом деле для практических целей используется только извращенцами, а создан, как реализация всем известной машины Тьюринга... но им же пофиг)? Тогда ты программер! Так чтобы не было такого, уж простите, быдла среди программистов, программист должен быть сначала математиком и инженером, а только потом кодером.

Раньше мое мнение было диаметрально противоположным вашему. Я считал, что любую задачу можно решить с наскоку, не особо напрягаясь, при этом надо лишь хорошо владеть языком программирования и чем он "ниже", тем круче. Конечно, время изменило мои взгляды, мне нравятся красивые алгоритмически решения задач, хочется этому больше научиться, но с другой стороны печально осознавать, что это удел каких-либо узкоспециализированных проектов, а в большинстве своем востребованы на практике примитивные, но массовые задачи документооборота, финанс. отчетность и прочее.
Кстати, а почему в программистском мире такая ненависть к индусам и их коду? По слухам ведь они очень неплохие программисты и у них сильная математическая школа. Слышал только, про их ухищрения по увеличению строк кода, да и то потому, что у них система оценки труда была в LOC.
А насчет ассемблера пожалуй несоглашусь, мне кажется он неплохо прочищает мозги после высокоуровневого мышления, да и библиотек под него не так много, поэтому и приходится больше писать самому.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180486
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EmeryстудентикА нужно ли в повседневной работе программиста знание алгоритмов? Под алгоритмами ,я подразумеваю, сложные математически обоснованные наборы инструкций, всегда приводящие к результату. Ведь, наверняка, можно писать даже коммерческие программы, без особого представления о "сложности алгоритма", "структурах данных" и пр. К примеру, с этим я сталкивался в программировании баз данных(правда небольшие проекты). Хочется услышать мнения людей, основанные на их личном опыте.
Все зависит от вашей будущей специализации в программировании. Если будете заниматься математическим и компьютерным моделированием реальных процессов, то без математики шагу не ступишь, а если обычным прикладным программированием, типа разработка различных клиентов (почтовых, баз данных и т.д.) под управлением существующих библиотек БД, то достаточно математики на уровне 4-го класса. Вон меня всегда удивляло, что например бухгалтера не знают простейших правил округления, для них тайна за семью печатями, почему сумма округлений, не равна округлению суммы. Кроме 4-х действий арифметики, других они не знают. Скажем, применение налогового метода амортизации в бухгалтерском учете. Коэффициент налоговой амортизации определяется как квартальный (для налогового учета) и чтобы из него получить месячный коэффициент (для бухгалтерского учета) бухгалтера тупо делят его на 3. Только одна-единственная тетя на всех бухгалтерских Интернет форумах засомневалось в этом, так ее быстро зашугали, ты чё типа, совсем «очевидных» вещей не понимаешь? А для меня «очевидно», что месячный коэффициент следует из квартального по формуле Кмес = 1 - (1 - Ккв)^(1/3) , а не по формуле теть-бухгалтеров Кмес = Ккв/3 . Именно эта формула позволила мне запрограммировать квартальный (налоговый) учет ОС, как ежемесячный (бухгалтерский), с тем же эффектом. А сделано это с целью единообразия форм документов и используемых алгоритмов (правда, ценной, некоторого увеличения объема базы данных).

Что до алгоритмов, то например я уже несколько дней вожусь с одним нелинейным алгоритмом сортировки на базе natural merge sort . Так вот «линейные» реализации этого алгоритма получены достаточно легко и просто и работают без проблем. А «нелинейная» реализация, при кажущейся простоте, реализована пока только на 99%. А последний процент меня уже измотал :) .

Если вы работали с IdaPro , то там есть программа wingraph32.exe , которая строит блок схемы дизассемблерного кода. Очень классная вещь! В Интернете есть ее исходные тексты на чистом Си. Только без знания алгоритмов построения блок схем они дают мало пользы. А вообще-то эту программу хотелось бы улучшить, жаль только, что у меня другая специализация :) .

Согласен с вами, только не особо часто встретишь на рынке труда предложения о такой работе, где требуется хорошая мат. подготовка. А в чем различие "нелинейной" реализации от "линейной" в приведенной выше сортировке?
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180489
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
механизаторS.G.Знавал я одного программиста, который ... в общем, говорит мне: "че-то Дельфа твоя не работает как следует. Делаю цикл, и комп виснет. ". Далее выясняется, что цикл у него от 1 и до 100! (100 факториал). То есть, он не имел представления ни о том, насколько велико число 100!, ни о том, можно ли его вообще вместить в некий integer... и о многом другом.Чёто какой-то странный у тебя дельфишник, или ты троллишь. Нормальный дельфишник за 10 минут нашел бы компанент решающий его задачу и еще за полчаса сделал бы форму с программой и этим компонентом. Всего-то делов.

Забавно... Еще один миф о всекомпонентном решении задач в Delphi:) По ходу любую задачу в Delphi настоящие гуру решают только киданием компонентов на формы, даже в случае вычисления 100!
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180491
maxik123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
программирование это не мат алгоритмы, а умение описать решение задачи на используемом языке.

мат алгоритмы это только определённая часть программирования, зачастую под конкретный проект просматриваешь целую область математики. вопрос же был про такие алгоритмы.

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

а вообще, обычно задача стоит гораздо шире чем поиск оптимального мат алгоритма. я имею ввиду ситуацию, когда человек в одиночестве ведёт проект от начала до конца. со временем я начал считать, что тут гораздо ценнее скорее стабильность результата, надёжность и поддержка, т.е. некие орг вопросы, а не оптимальность реализации отдельных кусков.
но каждый человек имеет право на своё мнение.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180492
максик123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
студентик
Забавно... Еще один миф о всекомпонентном решении задач в Delphi:) По ходу любую задачу в Delphi настоящие гуру решают только киданием компонентов на формы, даже в случае вычисления 100!

нормальный дельфишник не будет искать нестандартные компоненты, или купит библиотеку хорошо зарекомендовавших себя компонентов.
а поиск компонента для решения задачи это для студентов, которым впадляк думать головой, и которые считают, что гланое шоп хоть как-то заработало.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180493
мксик123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
правильным дельфишникам, впрочем как и всем программерам, важнее, шоп всё работало качественно. ищущие под каждую задачу компонент, как правило, лохи))
именно после них все плюются на программы на дельфи, и приходится объяснять, что дельфи тут не причём. впрочем, для меня дельфи в прошлом, уж очень пугает то, что он однажды может пропасть.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180499
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мксик123правильным дельфишникам, впрочем как и всем программерам, важнее, шоп всё работало качественно. ищущие под каждую задачу компонент, как правило, лохи))
именно после них все плюются на программы на дельфи, и приходится объяснять, что дельфи тут не причём. впрочем, для меня дельфи в прошлом, уж очень пугает то, что он однажды может пропасть.

Надежность программы, по-моему, так же зависит и от используемых в ней алгоритмов. Да Delphi уже не та... А на что перешли, если не секрет?
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180505
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикКстати, а почему в программистском мире такая ненависть к индусам и их коду?

Из - за того, что они конкуренты :), и их мого :)


А по теме топика - в повседневной жизни - редко.
Хотя бывают отдельные вакансии - разработчик алгоритмов - ищи :)
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180515
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентик Еще один миф о всекомпонентном решении задач в Delphi:) Вообще-то в моем примере Дельфи упоминается постольку- поскольку, а упор в нем на то, что человек начал решать какую-то задачу, не имея представление о факториалах, представлении чисел, а также не имел понятия как решаются задачи на оптимизацию. В конце упоминается что он "до этого клепал формочки на Акцесе" но и Акцес тут ни при чем, просто у человека было представление, что все решается средой программирования- делаешь формы, а она устраивает все сама.
А насчет математики и алгоритмов- знания в этой области необходимы всегда, пусть и косвено - просто человек обладающий такими навыками использует их даже не замечая. Эти знания стимулируют аналитическое мышление, способность разбить задачу на подзадачи, найти логичный подход.
Недавно на форуме встретил выражение "я сделал табличку с (здесь большое число) полями и индексы по каждому полю". По контексту было видно, что поиск по большинству полей не будет производиться, они просто информационные. Вот как вы думаете, этот человек имеет представление, почему нужны индексы, и надо ли обязательно иметь индексы по всем полям? имхо, не имеет.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180517
eJack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентик,

В текущий момент большенство работы - запрос в базу->показать результат.
Мы используем различные ORM, J2EE AS, Other FrameWorks и создавая бизнес приложения.

А вот если вы решите написать свой Framework или пожелаете поучаствовать в разработке уже существующего - вот тогда скорее всего понадобятся знания и умения работы с алгоритмами.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180553
макс123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
студентик
Надежность программы, по-моему, так же зависит и от используемых в ней алгоритмов.

Вариант, когда из за неправильного алгоритма страдает надёжность я даже не рассматриваю.

студентик
Да Delphi уже не та... А на что перешли, если не секрет?
На ВЦ++ и БСБ семь лет назад, но правда полностью почувствовать себя приверженцем майкрософтовских продуктов я так и не смог, наверное сказался 10ти летний стаж использования борландских.
Но опять же, на данный момент мне не важно что именно использовать, использовал кучу разных сред разработки, основные проблемы и сложности не в кодировании, а в орг вопросах, а как сделать, с помощью чего, это не главное. Наверное, я не истинный программер, но уже ничего не поделать. Время, когда я стремился к оптимальным алгоритмам ради алгоритмов безвозвратно ушло ещё лет восемь назад:)
Но всё же оно было...
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180602
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикСогласен с вами, только не особо часто встретишь на рынке труда предложения о такой работе, где требуется хорошая мат. подготовка. А в чем различие "нелинейной" реализации от "линейной" в приведенной выше сортировке?
Ну, почему? В военной области, в разработке современных систем вооружений, хорошая «мат. подготовка» очень даже нужна и востребована. А в гражданском секторе, да, математика используется значительно меньше, особенно после распада СССР. Это касается вообще любой наукоемкой деятельности. Я думаю, что чем больше государство использует наукоемкую продукцию в гражданском секторе, тем более оно развито. Вот, например, у нас в Украине, мы даже свой первый спутник связи запустить не можем. Занимаем на это дело денег у Канады. И это объясняет многое.

Тем не менее, даже если взять двух программистов занимающихся, допустим, только учетом на предприятии, одного с мат подготовкой, другого без, то разница их подходов хорошо различима. Хотя результат может быть один и тот же. «Математик» более склонен к реализации абстрактных моделей и критическому отношению к существующим, а «Технарь» часто-густо предпочитает стандартизированные локальные решения, вплоть до «ломовых», наращивая мощность больше за счет «крутизны» компьютеров, чем за счет оптимизации алгоритмов. Поверьте, что даже в стандартном учете (если вы его сами программируете) есть масса задач, достойных математиков. Это касается и моделей учета и оптимизации алгоритмов и способности из слабых систем получать максимум возможного. Вот простой пример, для конкретики. Все хорошо знают, что такое «1С». Так вот фирма «1С» сделала такое «изобретение» как субконто . Для «Технаря» тут нет никаких вопросов, ну придумали это понятие, ну и ладно, используют, ну и хорошо. «Математик», хорошо владеющий также предметной областью учета, обязательно озадачится, а зачем, почему, какой смысл в этом? И найдет ответ, который перевернет всю прикладную модель учета братьев Нуралиевых с головы на ноги и более того, заставит переосмыслить весь бухгалтерский учет как таковой. И придет к выводу, что бухгалтерский «учет», это не учет вовсе, а «контроль» , а для того, чтобы вести нормальный учет на предприятии нужно реализовать совершенно другую концепцию, которую логично назвать «натуральный учет» , из которого бухгалтерский «учет» должен быть получен уже как следствие. Могу добавить также, что смысла бухгалтерского «учета» очень часто не знают даже профессиональные бухгалтера со стажем, именно его сути, а не формы, которую они обычно знают в совершенстве. Эту тему можно развивать, но думаю для примера достаточно, чтобы показать различие подходов программистов с абстрактным мышлением (которое дает математика) и без. Подобное различие характерно для любой области программирования, вот и делайте вывод сами, нужна математика прикладному программисту или нет?

Насчет «линейной» и «нелинейной» реализации алгоритма сортировки естественным слиянием (natural merge sort) .

Он состоит из основных двух операций.

1. Разделение (расщепление) Split данной сортируемой последовательности S на множество локально упорядоченных (по возрастанию или убыванию) подпоследовательностей {s1, s2, s3, . . . , sK} , где все подпоследовательности, кроме, быть может, последней содержат более одной записи (ключа).

2. Объединение (слияние) Merge смежных пар подпоследовательностей одного уровня в одну (слева направо), с учетом порядка упорядочения этих подпоследовательностей. Т.е., убывающая последовательность сливается с «конца», а возрастающая с «начала».

Эти две операции повторяются до тех пор, пока вся последовательность S не будет состоять из одной только подпоследовательности, т.е., пока она не станет упорядоченной.

Различие между «линейной» и «нелинейной» реализацией, по сути, только в том, чтобы операцию Split применять только одни раз или в один проход по искомой последовательности S (для «нелинейного» случая). Поскольку, этот алгоритм планируется использовать для внешней сортировки файлов (по ключу) больших размеров (не помещающихся в обычную память), то разрешается использовать до двух файловых буферов размером как неизменяемый файл-источник.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180605
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы лучше продемонстрировать "нелинейность" алгоритма, прикладывают демонстрационный рисунок.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180659
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL_LamerстудентикКстати, а почему в программистском мире такая ненависть к индусам и их коду?

Из - за того, что они конкуренты :), и их мого :)


А по теме топика - в повседневной жизни - редко.
Хотя бывают отдельные вакансии - разработчик алгоритмов - ищи :)

Думаю до разработчика алгоритмов мне пока очень далеко:)
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180662
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентик пишет:

> А нужно ли в повседневной работе программиста знание алгоритмов? Под
> алгоритмами ,я подразумеваю, сложные математически обоснованные наборы
> инструкций, всегда приводящие к результату.

Ну, как бы быть грамотным алгоритмически очень полезно. Может быть
не нужно знать наизусть все алгоритмы на свете, да это и невозможно,
но иметь представление о том, какие алгоритмы для решения каких задач
существуют, я считаю, нужно. Просто так у людей возникает хорошее
понимание проблем производительности, например, что можно сделать,
а что нельзя сделать в принципе.

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



Ведь, наверняка, можно
> писать даже коммерческие программы, без особого представления о
> "сложности алгоритма", "структурах данных" и пр. К примеру, с этим я
> сталкивался в программировании баз данных(правда небольшие проекты).

можно. Но это будет наверное не очень успешная деятельность.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180663
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S.G.студентик Еще один миф о всекомпонентном решении задач в Delphi:) Вообще-то в моем примере Дельфи упоминается постольку- поскольку, а упор в нем на то, что человек начал решать какую-то задачу, не имея представление о факториалах, представлении чисел, а также не имел понятия как решаются задачи на оптимизацию. В конце упоминается что он "до этого клепал формочки на Акцесе" но и Акцес тут ни при чем, просто у человека было представление, что все решается средой программирования- делаешь формы, а она устраивает все сама.
А насчет математики и алгоритмов- знания в этой области необходимы всегда, пусть и косвено - просто человек обладающий такими навыками использует их даже не замечая. Эти знания стимулируют аналитическое мышление, способность разбить задачу на подзадачи, найти логичный подход.
Недавно на форуме встретил выражение "я сделал табличку с (здесь большое число) полями и индексы по каждому полю". По контексту было видно, что поиск по большинству полей не будет производиться, они просто информационные. Вот как вы думаете, этот человек имеет представление, почему нужны индексы, и надо ли обязательно иметь индексы по всем полям? имхо, не имеет.

Мое сообщение относилось больше к механизатору, чем к вам. Просто сам использую Delphi и подход - нашел компонент, значит решил задачу считаю неуместным.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180666
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RT183.1 пишет:
> Я при всем моем уважении к Кнуту в руках не держал его книжки.
> Во-первых, они очень дорогие,
> во-вторых, там довольно сложная математика

Не, там далеко не везде сложная математика. Но написано исключительно
занудно и, как бы сказать, замедленно. Кнут вообще людит процесс
написания, видимо, читеть его поэтому сложно.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180667
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
механизатор пишет:

> Чёто какой-то странный у тебя дельфишник, или ты троллишь. Нормальный
> дельфишник за 10 минут нашел бы компанент решающий его задачу и еще за
> полчаса сделал бы форму с программой и этим компонентом. Всего-то делов.

Это какой же такой компонент нужен ? Компонент выполнения цикла ?
Ну, был бы такой, работал бы он точно так же.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180669
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EmeryЧтобы лучше продемонстрировать "нелинейность" алгоритма, прикладывают демонстрационный рисунок.

В принципе, у меня была идея подобной сортировки может быть только несколько отличная.
1. Разбить все элементы на группы(возможно рекурсивно) числом элементов мин - 1 макс - 2.
2. Упорядочить элементы в каждой группе для этого достаточно 1 сравнения для 1 групы
3.Упорядоченные группы сливать например слева направо.

Если не ошибаюсь порядок действий такой сортировки равен исходному числу элементов.
Минус в раходах на доп. память.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180680
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот и еще один вопрос к форумчанам, косвенно относящийся к теме топика.
А нужно ли на практике отличное знание среды(например программирования), существенно ли это влияет на процесс разработки крупных приложений?
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180715
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентик,

конечно не нужно, ведь есть vi и notepad
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180735
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикВ принципе, у меня была идея подобной сортировки может быть только несколько отличная.
1. Разбить все элементы на группы(возможно рекурсивно) числом элементов мин - 1 макс - 2.
2. Упорядочить элементы в каждой группе для этого достаточно 1 сравнения для 1 групы
3.Упорядоченные группы сливать например слева направо.

Если не ошибаюсь порядок действий такой сортировки равен исходному числу элементов.
Минус в раходах на доп. память.
Если не ошибаюсь, то ваш алгоритм похож на алгоритм Джона фон Нейманом , изобретенного в 1945 году. Вот его корректная формулировка:

1. Сортируемое поле разбивается на две половины примерно одинакового размера;
2. Каждая из получившихся половин сортируется отдельно, например – этим же алгоритмом;
3. Два упорядоченных буфера половинного размера объединяются (сливаются) в один.

Рекурсивное разбиение задачи на меньшие происходит до тех пор, пока количество элементов индексируемого поля не достигнет единицы (любое множество длины 1 можно считать упорядоченным по определению).

«Естественное слияние» отличается от «обычного» учетом уже существующего порядка в сортируемых записях . А поскольку порядок может быть как возрастающий (неубывающий) так и убывающий, то приходится принимать во внимание оба этих случая. Именно этот вариант я и реализовал, для случая одного прохода , определяющего упорядоченные подпоследовательности (УПП) и без рекурсии .
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180737
макс132
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Emery
Ну, почему? В военной области, в разработке современных систем вооружений, хорошая «мат. подготовка» очень даже нужна и востребована. А в гражданском секторе, да, математика используется значительно меньше, особенно после распада СССР. Это касается вообще любой наукоемкой деятельности. Я думаю, что чем больше государство использует наукоемкую продукцию в гражданском секторе, тем более оно развито. Вот, например, у нас в Украине, мы даже свой первый спутник связи запустить не можем. Занимаем на это дело денег у Канады. И это объясняет многое.

Тем не менее, даже если взять двух программистов занимающихся, допустим, только учетом на предприятии, одного с мат подготовкой, другого без, то разница их подходов хорошо различима. Хотя результат может быть один и тот же. «Математик» более склонен к реализации абстрактных моделей и критическому отношению к существующим, а «Технарь» часто-густо предпочитает стандартизированные локальные решения, вплоть до «ломовых», наращивая мощность больше за счет «крутизны» компьютеров, чем за счет оптимизации алгоритмов. Поверьте, что даже в стандартном учете (если вы его сами программируете) есть масса задач, достойных математиков. Это касается и моделей учета и оптимизации алгоритмов и способности из слабых систем получать максимум возможного. Вот простой пример, для конкретики. Все хорошо знают, что такое «1С». Так вот фирма «1С» сделала такое «изобретение» как субконто . Для «Технаря» тут нет никаких вопросов, ну придумали это понятие, ну и ладно, используют, ну и хорошо. «Математик», хорошо владеющий также предметной областью учета, обязательно озадачится, а зачем, почему, какой смысл в этом? И найдет ответ, который перевернет всю прикладную модель учета братьев Нуралиевых с головы на ноги и более того, заставит переосмыслить весь бухгалтерский учет как таковой. И придет к выводу, что бухгалтерский «учет», это не учет вовсе, а «контроль» , а для того, чтобы вести нормальный учет на предприятии нужно реализовать совершенно другую концепцию, которую логично назвать «натуральный учет» , из которого бухгалтерский «учет» должен быть получен уже как следствие. Могу добавить также, что смысла бухгалтерского «учета» очень часто не знают даже профессиональные бухгалтера со стажем, именно его сути, а не формы, которую они обычно знают в совершенстве. Эту тему можно развивать, но думаю для примера достаточно, чтобы показать различие подходов программистов с абстрактным мышлением (которое дает математика) и без. Подобное различие характерно для любой области программирования, вот и делайте вывод сами, нужна математика прикладному программисту или нет?

Насчет «линейной» и «нелинейной» реализации алгоритма сортировки естественным слиянием (natural merge sort) .

Он состоит из основных двух операций.

1. Разделение (расщепление) Split данной сортируемой последовательности S на множество локально упорядоченных (по возрастанию или убыванию) подпоследовательностей {s1, s2, s3, . . . , sK} , где все подпоследовательности, кроме, быть может, последней содержат более одной записи (ключа).

2. Объединение (слияние) Merge смежных пар подпоследовательностей одного уровня в одну (слева направо), с учетом порядка упорядочения этих подпоследовательностей. Т.е., убывающая последовательность сливается с «конца», а возрастающая с «начала».

Эти две операции повторяются до тех пор, пока вся последовательность S не будет состоять из одной только подпоследовательности, т.е., пока она не станет упорядоченной.

Различие между «линейной» и «нелинейной» реализацией, по сути, только в том, чтобы операцию Split применять только одни раз или в один проход по искомой последовательности S (для «нелинейного» случая). Поскольку, этот алгоритм планируется использовать для внешней сортировки файлов (по ключу) больших размеров (не помещающихся в обычную память), то разрешается использовать до двух файловых буферов размером как неизменяемый файл-источник.
если вы действительно такой хороший, вы должны были дать ссылку на гуглю с описанием, а не объяснять)
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180760
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
макс132если вы действительно такой хороший, вы должны были дать ссылку на гуглю с описанием, а не объяснять)
Так с ссылками не проблема, например:
http://books.google.ru/books?id=k0vUmjua41wC&pg=PA341&lpg=PA341&dq=%22natural+merge+sort%22
http://books.google.ru/books?id=zInY9G915-YC&pg=PA257&lpg=PA257&dq=%22natural+merge+sort%22
http://books.google.ru/books?id=HZ9Z-PS1g0UC&pg=PA51&lpg=PA51&dq=%22natural+merge+sort%22
http://www.daniweb.com/forums/thread190739.html
Только, они не дают реальный оптимизированный алгоритм, только общие идеи или неудачную реализацию в последнем случае. У меня самого есть три или четыре собственных реализаций этого алгоритма, остановился на том, который продемонстрирован рисунком. И он существенно завязан на двоичном представлении числа упорядоченных подпоследовательностей (УПП) данной последовательности. Так что я никого не копирую, за исключением общих идей.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180777
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivRT183.1 пишет:
> Я при всем моем уважении к Кнуту в руках не держал его книжки.
> Во-первых, они очень дорогие,
> во-вторых, там довольно сложная математика

Не, там далеко не везде сложная математика. Но написано исключительно
занудно и, как бы сказать, замедленно. Кнут вообще людит процесс
написания, видимо, читеть его поэтому сложно.
Зря, вы на Кнута наезжаете. Не нужно забывать, что его третий том «Сортировка и поиск» вышел на русском языке аж в 1978 году, а в оригинале в 1973 году. А основные результаты, очевидно, получены в 60-х годах. Так что для своего времени, когда шла борьба за каждый байт памяти его труды были вполне актуальны. Сейчас, да, есть более современные книги, например.

Роберт Седжвик – Фундаментальные алгоритмы на C++ – Части 1-4 – Анализ & Структуры данных & Сортировка & Поиск
и
Роберт Седжвик – Фундаментальные алгоритмы на C++ – Часть 5 – Алгоритмы на графах

Их можно скачать, например в
http://mskd.ru/?id.17174.books.Fyndamental'nie_algoritmi_na_S++_-_R.Sedzhvik

А математика у Кнута никак не связанна с пониманием алгоритмов. Ее роль только определить эффективность работы рассматриваемых алгоритмов. Только для современных условий программирования и компьютеров эту математику нужно вычислять заново или обладать хорошей интуицией или чутьем на применяемые алгоритмы. Единственное с чем я могу вполне согласиться, что Кнут немного морально устарел, но именно на его трудах написаны многие современные книги в этой области.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180804
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EmeryMasterZivRT183.1 пишет:
> Я при всем моем уважении к Кнуту в руках не держал его книжки.
> Во-первых, они очень дорогие,
> во-вторых, там довольно сложная математика

Не, там далеко не везде сложная математика. Но написано исключительно
занудно и, как бы сказать, замедленно. Кнут вообще людит процесс
написания, видимо, читеть его поэтому сложно.
Зря, вы на Кнута наезжаете. Не нужно забывать, что его третий том «Сортировка и поиск» вышел на русском языке аж в 1978 году, а в оригинале в 1973 году. А основные результаты, очевидно, получены в 60-х годах. Так что для своего времени, когда шла борьба за каждый байт памяти его труды были вполне актуальны. Сейчас, да, есть более современные книги, например.

Роберт Седжвик – Фундаментальные алгоритмы на C++ – Части 1-4 – Анализ & Структуры данных & Сортировка & Поиск
и
Роберт Седжвик – Фундаментальные алгоритмы на C++ – Часть 5 – Алгоритмы на графах

Их можно скачать, например в
http://mskd.ru/?id.17174.books.Fyndamental'nie_algoritmi_na_S++_-_R.Sedzhvik

А математика у Кнута никак не связанна с пониманием алгоритмов. Ее роль только определить эффективность работы рассматриваемых алгоритмов. Только для современных условий программирования и компьютеров эту математику нужно вычислять заново или обладать хорошей интуицией или чутьем на применяемые алгоритмы. Единственное с чем я могу вполне согласиться, что Кнут немного морально устарел, но именно на его трудах написаны многие современные книги в этой области.

Странно а я полагал, что все фундаментальные алгоритмы сложились как раз уже во время написания книг Кнутом. Современные алгоритмы, по-моему, не претерпели каких-либо серьезных изменений, кроме как аппаратных уклонов на распараллеливание вычислений, многопроцессорность и т. д.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180810
Emery
Ну, почему? В военной области, в разработке современных систем вооружений, хорошая «мат. подготовка» очень даже нужна и востребована Ну, и сколько получает средний разработчик форм на vcl/wpf/winforms и сколько получает специалист с хорошей "матподготовкой" в оборонке? Второй в 2-3 раза меньше первого
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180823
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикСтранно а я полагал, что все фундаментальные алгоритмы сложились как раз уже во время написания книг Кнутом. Современные алгоритмы, по-моему, не претерпели каких-либо серьезных изменений, кроме как аппаратных уклонов на распараллеливание вычислений, многопроцессорность и т. д.
Ну, того же «natural merge sort» я у Кнута не нашел, хотя про сортировку слиянием он пишет. Потом B+ деревья , которые весьма интенсивно используются при индексации баз данных и построении на их основе SQL запросов изобретены Рудольфом Байером (Rudolf Bayer) только в 1972 году. И вообще, фундаментальные алгоритмы, имеющие отношение к SQL, у Кнута практически отсутствуют полностью. Так что не надо думать, что фундаментальные алгоритмы перестали появляться после Кнута :) .
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180825
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
механизаторEmery
Ну, почему? В военной области, в разработке современных систем вооружений, хорошая «мат. подготовка» очень даже нужна и востребована Ну, и сколько получает средний разработчик форм на vcl/wpf/winforms и сколько получает специалист с хорошей "матподготовкой" в оборонке? Второй в 2-3 раза меньше первого
Трудно судить о зарплате закрытых контор. На западе «военные» программисты получают чуть ли не на порядок больше «обычных». И потом сейчас не лучшая эпоха в наших странах для подобных сравнений. В Украине даже военный парад бронетехники отменили на день независимости из-за банальной нехватки денег. Да и к тому же «рабочие лошадки» у нас всегда получают значительно меньше тех, кто ими «руководит». Короче если политика оплаты труда никак не связана с качеством этого труда, то о чем тут говорить вообще. Раньше был принцип оплаты: «От каждого по способностям, каждому по труду» , а сейчас работает принцип: «От каждого по способностям, каждому сколько положено» :) .
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180908
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Emery пишет:

> Зря, вы на *Кнута* наезжаете. Не нужно забывать, что его *третий том
> «Сортировка и поиск»* вышел на русском языке аж в *1978* году, а в
> оригинале в *1973* году.

Я не наезжаю. Я описываю свойства этой книги.

> чутьем на применяемые алгоритмы. Единственное с чем я могу вполне
> согласиться, что Кнут немного морально устарел, но именно на его трудах
> написаны многие современные книги в этой области.

Да он не морально устарел, он по жизни такой. Математик, зануда может
быть, максималист. Кто ещё мог отказаться от публикации своей книги только
потому, что не было шрифтов для её издания, уйти на 2 или 3 года, и вернуться
с новым средством производства этих самых шрифтов ?

Это не хорошо и не плохо, это -- свойство характера. Человек пишет
статью о форматировании параграфа и в лирическом отступлении исследует
вопрос о том, как полиграфисты решали, где закончить очередную строку
абзаца, чуть ли не вплоть до рукописных тексов библии или даже
египедских иероглифов. Ну что поделать, такой он.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180909
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентик пишет:

> Странно а я полагал, что все фундаментальные алгоритмы сложились как раз
> уже во время написания книг Кнутом.

Ну, Кнут изобрёл сам несколько алгоритмов. Описал и обосновал впервые.
Из того, что я знаю, это быстрый алгоритм поиска строки и алгоритм оптимального
форматирования абзаца текста (на самом деле их два у него, но я не знаю, был ли
описан более простой из них до него).
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180930
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EmeryстудентикСтранно а я полагал, что все фундаментальные алгоритмы сложились как раз уже во время написания книг Кнутом. Современные алгоритмы, по-моему, не претерпели каких-либо серьезных изменений, кроме как аппаратных уклонов на распараллеливание вычислений, многопроцессорность и т. д.
Ну, того же «natural merge sort» я у Кнута не нашел, хотя про сортировку слиянием он пишет. Потом B+ деревья , которые весьма интенсивно используются при индексации баз данных и построении на их основе SQL запросов изобретены Рудольфом Байером (Rudolf Bayer) только в 1972 году. И вообще, фундаментальные алгоритмы, имеющие отношение к SQL, у Кнута практически отсутствуют полностью. Так что не надо думать, что фундаментальные алгоритмы перестали появляться после Кнута :) .

Просмотрел книгу "Фундаментальные алгоритмы на С++" Сэджвика. Неспорю книга хороша, наверно даже более доступна для начинающих, чем Кнут. Но даже беглого взгляда хватило, чтобы увидеть их разницу. Кнут более фундаментален, исчерпывающ, математически строг, именно поэтому наверно его 3х томник считают чуть ли не библией алгоритмов всех времен. Да у Сэджвика более новый материал, более последние факты, но это явно книги разных уровней. Могу даже предположить, что Сэджвик на страницах своей книги в заданиях вряд ли давал научные неразрешенные проблемы, как это делает Кнут. Правда в чем сила Кнута в том наверно его и недостаток, читать его неимоверно трудно - нужно превосходное знание математики и куча свободного времени, поэтому скорее всего он и не используется практиками. По мне его 3 тома нужно лет 5 основательно изучать либо в учебном заведении, либо самостоятельно и тогда откроется истина:) А так конечно Сэджвик даже предпочтительнее...
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36180932
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
студентик пишет:

> Странно а я полагал, что все фундаментальные алгоритмы сложились как раз
> уже во время написания книг Кнутом.

Ну, Кнут изобрёл сам несколько алгоритмов. Описал и обосновал впервые.
Из того, что я знаю, это быстрый алгоритм поиска строки и алгоритм оптимального
форматирования абзаца текста (на самом деле их два у него, но я не знаю, был ли
описан более простой из них до него).


Про алгоритм поиска подстроки Мориса-Кнута-Пратта наслышан, хотя на деле явно(для себя) не пользовался. А вот про алгоритм форматирования абзаца, признаться, даже и не слышал. Теперь буду знать.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36181031
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivДа он не морально устарел, он по жизни такой. Математик, зануда может
быть, максималист. Кто ещё мог отказаться от публикации своей книги только
потому, что не было шрифтов для её издания, уйти на 2 или 3 года, и вернуться
с новым средством производства этих самых шрифтов ?

Это не хорошо и не плохо, это -- свойство характера. Человек пишет
статью о форматировании параграфа и в лирическом отступлении исследует
вопрос о том, как полиграфисты решали, где закончить очередную строку
абзаца, чуть ли не вплоть до рукописных тексов библии или даже
египедских иероглифов. Ну что поделать, такой он.
Как по мне, то эта информация не имеет никакого отношения к профессионализму Кнута. Все равно, что судить про общую теорию относительности Эйнштейна по тому, как он показал язык всему человечеству или как сплагиатил у Лоренца и др. Я могу повторить еще раз, что его книга была весьма актуальна в свое время, и сейчас она имеет больше академический или исторический интерес.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36181123
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентик пишет:

> Просмотрел книгу "Фундаментальные алгоритмы на С++" Сэджвика. Неспорю
> книга хороша, наверно даже более доступна для начинающих, чем Кнут. Но
> даже беглого взгляда хватило, чтобы увидеть их разницу. Кнут более
> фундаментален, исчерпывающ, математически строг,

Он выглядит таким. Но не факт, что Сэджвик таким не является.
Я не знаю, не читал.

именно поэтому наверно
> его 3х томник считают чуть ли не библией алгоритмов всех времен. Да у
> Сэджвика более новый материал, более последние факты, но это явно книги
> разных уровней.

Да не думаю. Почему так все любят трёхтомник Кнута ?
Я вот не знаю. Полно других хороших книг, не менее фундаментальных,
и гораздо более практически полезных.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36181127
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Emery пишет:

> Как по мне, то эта информация не имеет никакого отношения к
> профессионализму Кнута.

Ещё раз, это не профессионализм, это -- свойство человека. Характер.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36181243
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикПросмотрел книгу "Фундаментальные алгоритмы на С++" Сэджвика. Неспорю книга хороша, наверно даже более доступна для начинающих, чем Кнут. Но даже беглого взгляда хватило, чтобы увидеть их разницу. Кнут более фундаментален, исчерпывающ, математически строг, именно поэтому наверно его 3х томник считают чуть ли не библией алгоритмов всех времен. Да у Сэджвика более новый материал, более последние факты, но это явно книги разных уровней. Могу даже предположить, что Сэджвик на страницах своей книги в заданиях вряд ли давал научные неразрешенные проблемы, как это делает Кнут. Правда в чем сила Кнута в том наверно его и недостаток, читать его неимоверно трудно - нужно превосходное знание математики и куча свободного времени, поэтому скорее всего он и не используется практиками. По мне его 3 тома нужно лет 5 основательно изучать либо в учебном заведении, либо самостоятельно и тогда откроется истина:) А так конечно Сэджвик даже предпочтительнее...
Ну, вы рассуждаете, действительно как студент :) , т.е. как человек недавно приступивший грызть «гранит науки». На самом деле Кнут «фундаментален» и «исчерпывающ» только для своего времени, не нужно забывать про это. «Математическая строгость» у него относительная, т.к. свои вычисления он проводит для придуманной им виртуальной машины MIX, с ее псевдо ассемблером, которая весьма далека от современных компьютеров и ассемблерного кода. Поэтому я и говорю, что реальную эффективность алгоритмов следует перерассчитывать заново, с учетом собственной специфики. Конечно, у него можно почерпнуть идеологию математических вычислений и несложный математический аппарат уровня первого – второго курса мехмата, но считать это «серьезной математикой» – увольте! Хотя если вас интересует только порядок эффективности алгоритмов (уровня О-символики), без конкретных коэффициентов, то, пожалуйста, спокойно используйте формулы Кнута. Только его «фишка» состояла в том, что он часто точно вычислял неопределенные коэффициенты для алгоритмов своей виртуальной машины. Так что для «Библии» он уже немного устарел.

Ну, что из того, что Кнут в качестве упражнения предложил доказать теорему Ферма, а Сэджвик – нет? Для поиска научных проблем вполне можно использовать другую литературу. Однако, если вы занимаетесь реальной научной работой, то вам собственных «научных проблем» хватит за глаза. У меня даже в курсовых и дипломном проекте, были сформулированы классы задач, которые еще «не знала математика» . Ну и что из того? И практически в каждой статье, посвященной прикладной науке, которыми я «баловался» в свое время я всегда выходил на неизвестные классы математических задач. Причем, все мои исследования были посвящены практическим приложениям. В то время я часто думал, что неплохо было бы привлекать профессиональных математиков для решения этих новых классов задач, и им было бы интересно и прикладной науке полезно. А то они (математики – теоретики) в своей аспирантуре, как правило, решают задачи, которые наверняка еще сотни лет не будут востребованы наукой. К сожалению, для этого у меня не было и нет соответствующих ресурсов. Скажем, недавно мне приходилось консультировать одного к.т.н-а, которому были выделены жалкие финансовые крохи на исследования в области борьбы с газовыделением в шахтах, так вот я с огромным удивлением обнаружил, что гибель шахтеров от взрывов метана и угольной пыли связанна не с «абсолютно случайной, неуправляемой природной стихией», типа землетрясений и вулканов, а с тем, что до сих пор нет адекватной математической модели образования катастрофически быстро растущей трещинноватости в горных породах (часто со сверхзвуковой скоростью) на средних и больших глубинах (для малых глубин матаппарат вполне адекватен). Самое смешное, что есть человек, который занимается проблемой сверхзвукового образования трещин на больших глубинах шахт уже более 20-ти лет. Фамилия его А.В. Шестопалов (ИПКОН РАН, Москва). Но, как легко предположить, и так на самом деле, он как Дон Кихот пытается побороть академическую науку с ее непотопляемыми заблуждениями относительно взрывоопасности в шахтах. А шахтеры, как гибли, так и гибнут. По сути это опальный или оппозиционный ученый. Да, у него сейчас есть собственный сайт и даже сторонники, но нет финансов и поддержки. Когда я ознакомился с его концепцией происхождения взрывов в шахтах, то стразу ему «поверил», в отличие от других ученных, исповедующих традиционные взгляды в этих вопросах. Проблема только за малым, воплотить концепцию Шестопалова в математическую модель. Но у него не хватает математического образования, а добровольные помощники предлагают строить модель на базе конечных автоматов, что вряд ли приведет к успеху, по моему мнению. В данном случае научная проблема сформулирована не мной, но важно другое, что нет пока математиков профессионалов, которые бы «занялись» ею. Прошу прощения, за столь длинный экскурс примера формулирования реальных научных проблем, взамен абстрактно-теоретических (и часто никому не нужных).

Далее по Кнуту. Можно спокойно игнорировать его математику, достаточно конечных формул определяющих порядок производительности алгоритмов (но конкретным коэффициентам особо не следует верить для современных реализаций этих алгоритмов). Потом, знание всех алгоритмов совершенно не обязательно, достаточно общий идей для какого класса задач, какие алгоритмы наиболее подходящи. И 5 лет его совершен не нужно изучать, достаточно пары месяцев и то урывками. Для современного программирования он мало приспособлен. Скажем мне понадобился хороший алгоритм внешней сортировки, так нашел я его не у Кнута, понадобились B+ деревья, их также не было у Кнута. И даже алгоритм быстрой сортировки, который есть у Кнута, гораздо лучше исследован в http://www.codenet.ru/progr/alg/qsort.php . Еще можно рекомендовать «Методы сортировки и поиска» С.Д. Кузнецова http://www.citforum.ru/programming/theory/sorting/sorting2.shtml
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36181743
Фотография RT183.1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
студентик пишет:

> Странно а я полагал, что все фундаментальные алгоритмы сложились как раз
> уже во время написания книг Кнутом.

Ну, Кнут изобрёл сам несколько алгоритмов. Описал и обосновал впервые.
Из того, что я знаю, это быстрый алгоритм поиска строки и алгоритм оптимального
форматирования абзаца текста (на самом деле их два у него, но я не знаю, был ли
описан более простой из них до него).

да он много чего напридумывал
Я тут как-то спрашивал про dancing links -- это его изобретение
Я прочитал в Вики но как-то не просек, а мне нужно было срочно
А потом уже не возвращался
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36182348
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
студентик пишет:

> Просмотрел книгу "Фундаментальные алгоритмы на С++" Сэджвика. Неспорю
> книга хороша, наверно даже более доступна для начинающих, чем Кнут. Но
> даже беглого взгляда хватило, чтобы увидеть их разницу. Кнут более
> фундаментален, исчерпывающ, математически строг,

Он выглядит таким. Но не факт, что Сэджвик таким не является.
Я не знаю, не читал.

именно поэтому наверно
> его 3х томник считают чуть ли не библией алгоритмов всех времен. Да у
> Сэджвика более новый материал, более последние факты, но это явно книги
> разных уровней.

Да не думаю. Почему так все любят трёхтомник Кнута ?
Я вот не знаю. Полно других хороших книг, не менее фундаментальных,
и гораздо более практически полезных.



Если вам интересно и есть возможность, скачайте книгу Сэджвика, хотя бы одну, по привиденной Emery выше ссылке. Мне кажется хватит даже беглого взгляда, хотя книга, наверняка, очень хороша, особенно для таких как я, невладеющих математикой и временем на уровне книг Кнута.
Я признаться не фанат Кнута, но просто отдаю дань труду, на который он потратил столько лет жизни. Есть к примеру весьма неплохие и известные аналоги, Кормен, Ахо и др.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36182366
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Emery
у него можно почерпнуть идеологию математических вычислений и несложный математический аппарат уровня первого – второго курса мехмата, но считать это «серьезной математикой» – увольте!

Уволим приходи на собеседование
Второй курс мехмата поржал

Ты вообще "Конкретную математику" внимательно читал ?
Там рассказывается о мат.аппарате, использованном при написании "Искусства программирования"
Ну или скажем 2 том (4 тоже ничего, просто не успел до всех дойти). Второй курс да ???
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36182467
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Emery пишет:

«Математическая строгость» у него относительная, т.к.
> свои вычисления он проводит для придуманной им виртуальной машины MIX, с
> ее псевдо ассемблером, которая весьма далека от современных компьютеров
> и ассемблерного кода. Поэтому я и говорю, что реальную эффективность
> алгоритмов следует перерассчитывать заново, с учетом собственной
> специфики.

Не нужно. Как раз те, кто что-то понимает в алгоритмике, это понимаю.
Вот ещё один пример, зачем нужно знать алгоритмы.

> Ну, что из того, что Кнут в качестве упражнения предложил доказать
> теорему Ферма, а Сэджвик – нет?

Это он пошутил так.

> Далее по Кнуту. Можно спокойно игнорировать его математику, достаточно
> конечных формул определяющих порядок производительности алгоритмов

Вот как раз очень трудно у него "пропустить всё ненужное" и
найти вывод. Очень плотно всё связано. Без контекста не понять.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36182709
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНу, вы рассуждаете, действительно как студент :) , т.е. как человек недавно приступивший грызть «гранит науки».
Уже отгрыз, правда не знаю, плохо это или хорошо. Но в алгоритмах я "студент" это точно.
Вот провел небольшое сравнение двух книг и подходов. Оно поверхностно, но все же.
Минус Сэджвика - это навязывание под алгоритмы конкретного языка и идеологии(С++ и ООП). Зачем к алгоритмам примешивать классы, методы, мне не понятно, пусть это и в угоду современным технологиям программирования. Глянул код быстрой сортировки и был немного ошарашен. Приведу его часть ниже:
Сэджвикtemplate <class Item>

int partition(Item[], int l, int r)
{
int l = l - 1, j = r; Item v = a[r];
for (;;)
{
while(a[++i] < v) ;
while(v < a[--j]) if (j == l)
break;
if (i >= j) break;
exch(a[i], a[j]);
}
exch(a[i], a[r]);
return i;
}

А вот скопированный мной с algolist.manual.ru
algolist.manual.rutemplate<class T>
void quickSortR(T* a, long N) {
// На входе - массив a[], a[N] - его последний элемент.

long i = 0, j = N; // поставить указатели на исходные места
T temp, p;

p = a[ N>>1 ]; // центральный элемент

// процедура разделения
do {
while ( a[i] < p ) i++;
while ( a[j] > p ) j--;

if (i <= j) {
temp = a[i]; a[i] = a[j]; a[j] = temp;
i++; j--;
}
} while ( i<=j );


// рекурсивные вызовы, если есть, что сортировать
if ( j > 0 ) quickSortR(a, j);
if ( N > i ) quickSortR(a+i, N-i);
}

Обратите на разницу в процедурах разделения. Разница в том, что Сэджвик в угоду оптимальности, ухудшил читаемость и логику кода чрезмерным использованием break. Я думаю это не допустимо в учебной литературе по алгоритмам.
авторНа самом деле Кнут «фундаментален» и «исчерпывающ» только для своего времени, не нужно забывать про это. «Математическая строгость» у него относительная, т.к. свои вычисления он проводит для придуманной им виртуальной машины MIX, с ее псевдо ассемблером, которая весьма далека от современных компьютеров и ассемблерного кода. Поэтому я и говорю, что реальную эффективность алгоритмов следует перерассчитывать заново, с учетом собственной специфики.
Тут вы конечно же правы. Но не стоит сравнивать алгоритм и его техническую реализацию, которая в угоду оптимальности может быть изменена до неузнаваемости. Прошло время, пришли эффективеные процессоры способные спаривать вычисления инструкций, возможно разделение на вычисления между ядрами многопроцессорных систем и пр. Но это все не меняет сути алгоритма, это все техническая реализация, которая постоянно меняется с течением времени причем весьма быстрыми темпами. Ассемблерный код алгоритма вообще нужно модернизировать под каждый процессор.
авторНу, что из того, что Кнут в качестве упражнения предложил доказать теорему Ферма, а Сэджвик – нет? Для поиска научных проблем вполне можно использовать другую литературу.

Разница в том, что Кнут академическая книга, а Сэджвик вряд ли.
авторСамое смешное, что есть человек, который занимается проблемой сверхзвукового образования трещин на больших глубинах шахт уже более 20-ти лет. Фамилия его А.В. Шестопалов (ИПКОН РАН, Москва). Но, как легко предположить, и так на самом деле, он как Дон Кихот пытается побороть академическую науку с ее непотопляемыми заблуждениями относительно взрывоопасности в шахтах.
Это бедственное положение науки в нашей стране, но это уже проблемы политического характера.
авторДалее по Кнуту. Можно спокойно игнорировать его математику, достаточно конечных формул определяющих порядок производительности алгоритмов (но конкретным коэффициентам особо не следует верить для современных реализаций этих алгоритмов). Потом, знание всех алгоритмов совершенно не обязательно, достаточно общий идей для какого класса задач, какие алгоритмы наиболее подходящи.
Вы правы. Не нужно же быть доктором ф.м. и т. наук для того что бы программировать, или побывать в космосе, чтобы быть астрофизиком.
авторИ 5 лет его совершен не нужно изучать, достаточно пары месяцев и то урывками.
Тут с вами не соглашусь. Все зависит от ваших интересов. Для практикующих нужд Сэджвик будет вполне хорош. Если вам нужны научные изыскания, то Кнут и аналогичная литература.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36182883
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Уволим приходи на собеседование
Второй курс мехмата поржал

Ты вообще "Конкретную математику" внимательно читал ?
Там рассказывается о мат.аппарате, использованном при написании "Искусства программирования"
Ну или скажем 2 том (4 тоже ничего, просто не успел до всех дойти). Второй курс да ???
Вам смешно, из-за того, что вы знаете программу обучения 1 и 2-го курса мехмата МГУ, допустим? И полагаете, что второкурсник мехмата не поймет Кнута? Думаю, что вы плохого о них мнения.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36182884
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivВот как раз очень трудно у него "пропустить всё ненужное" и
найти вывод. Очень плотно всё связано. Без контекста не понять.
Я вполне понимаю.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36183118
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EmeryGluk (Kazan)Уволим приходи на собеседование
Второй курс мехмата поржал

Ты вообще "Конкретную математику" внимательно читал ?
Там рассказывается о мат.аппарате, использованном при написании "Искусства программирования"
Ну или скажем 2 том (4 тоже ничего, просто не успел до всех дойти). Второй курс да ???
Вам смешно, из-за того, что вы знаете программу обучения 1 и 2-го курса мехмата МГУ, допустим? И полагаете, что второкурсник мехмата не поймет Кнута? Думаю, что вы плохого о них мнения.

Поймет что, простите ?

1. Пробежит по тексту и поймет знакомые буквы ?
2. Прочитает и поймет по своему ?
3. Поймет о чем ваще это ?
4. Разберется в математических обоснованиях и оценке сложности ?
5. Сам докажет пару лемм в главе ?
6. Решит пару упражнений, помеченных как легкие ?
7. Решит все упражнения ?

Хороший второкурсник может добраться до пункта 4, очень хороший до 5 (но вряд ли, поскольку у студентов всегда не хватает времени). А Кнута, с пользой для себя, можно читать долго и обстоятельно. И каждый раз находить что-то новое и интересное. Вас кто-то обманул, это не справочник алгоритмов. Это книга для души.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36183314
MAYAKOV_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентик,

Алгоритмы нужны. Причем обязательно. Уровень программиста как раз можно измерить знаниями алгоритмов, чем больше он их знает, тем лучше. Но и тут нужна мера, знать все невозможно поэтому нужно избирать, что нужно знать для работы. А так изучать основные алгоритмы надо. Если человек не знает алгоритмов, что же он напишет?
Это все равно, что сказать: нужно ли художнику уметь рисовать? Можно, в принципе, сказать что и неумеющий рисовать, картину нарисует, но кто же ее купит?
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36183366
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикВот провел небольшое сравнение двух книг и подходов. Оно поверхностно, но все же.
Ну, склонность к аналитическому мышлению есть уже хорошо :) .

студентикМинус Сэджвика - это навязывание под алгоритмы конкретного языка и идеологии(С++ и ООП). Зачем к алгоритмам примешивать классы, методы, мне не понятно, пусть это и в угоду современным технологиям программирования. Глянул код быстрой сортировки и был немного ошарашен.
Си, ООП, классы – какая разница? Воспринимайте алгоритмы, как будто они написаны на естественном языке, думайте более абстрактно. И не воспринимайте их буквально, авторы учебников не боги, а их книги не Библия. Я смотрю на подобные алгоритмы, всего лишь как на общие идеи и часто реализую их со своими дополнениями и нюансами, иногда по несколько вариантов. Вот последний мой алгоритм внешней сортировки, о котором я уже писал здесь, реализован вообще на FoxPro (см. тему здесь «Алгоритм создания CDX файлов»), но предназначен отнюдь не для VFP, просто VFP мне показался более удобным для демонстрации этого алгоритма, как такового.

студентикРазница в том, что Кнут академическая книга, а Сэджвик вряд ли.
Я не обращаю внимание на авторитеты, для меня важно содержание, смысл, а не «академизм» или научные регалии. Иногда студент может говорить более умные вещи, чем член-кор. АН СССР.

авторИ 5 лет его совершен не нужно изучать, достаточно пары месяцев и то урывками.
Тут с вами не соглашусь. Все зависит от ваших интересов. Для практикующих нужд Сэджвик будет вполне хорош. Если вам нужны научные изыскания, то Кнут и аналогичная литература.[/quot]
Да не тянет Кнут на научные изыскания. Все существенное, сказанное им можно изложить в книге в десять раз меньшего объема. Я не ставлю ему в вину многословность, это типичное явление для первопроходцев. А Кнут был одним из первых, когда еще ничего не устоялось. На Сэджвика я обратил внимание только потому, что у него лучше чем у других представлена работа с В+ деревьями, да и вообще с деревьями. Но принцип их построения я уже успел понять до Сэджвика по весьма скудным сведениям в Интернете.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36183475
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Emery
Да не тянет Кнут на научные изыскания.

чем докажешь ?
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36183487
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)EmeryВам смешно, из-за того, что вы знаете программу обучения 1 и 2-го курса мехмата МГУ, допустим? И полагаете, что второкурсник мехмата не поймет Кнута? Думаю, что вы плохого о них мнения.

Поймет что, простите ?

1. Пробежит по тексту и поймет знакомые буквы ?
2. Прочитает и поймет по своему ?
3. Поймет о чем ваще это ?
4. Разберется в математических обоснованиях и оценке сложности ?
5. Сам докажет пару лемм в главе ?
6. Решит пару упражнений, помеченных как легкие ?
7. Решит все упражнения ?

Хороший второкурсник может добраться до пункта 4, очень хороший до 5 (но вряд ли, поскольку у студентов всегда не хватает времени). А Кнута, с пользой для себя, можно читать долго и обстоятельно. И каждый раз находить что-то новое и интересное. Вас кто-то обманул, это не справочник алгоритмов. Это книга для души.
Вы явно не с мехмата, вот вам типичный пример. В МГУ я познакомился с одним абитуриентом, собиравшегося стать математиком. Для проверки его умственных способностей подкинул ему задачку Киркмана. Нужно было построить 10 матриц размером 3*7 заполненных числами от 1 до 21 так чтобы никакая пара чисел в этой группе матриц не встречалась дважды. Аналогичную задачу для 7 матриц 3*5 заполненных числами от 1 до 15, Киркман сформулировал в 1850 году, а решена она была в 1924 году. Решение для 21 числа на тот момент не было известно. Так вот, надо отдать должное нашему абитуриенту, эту задачу он решил чуть более чем за полгода. Она повлияла на то, что он специализировался на кафедре дискретной математики, у академика Рыбникова (который написал книгу «Комбинаторный анализ», где приводил решение задачи Киркмана для 15 чисел, для 21 числа решения он не знал). Вы хотите сказать, что у Кнута, не считая теоремы Ферма, есть более сложные задачи? Даже если и есть, то к сортировке и поиску они имеют мало отношения. Другой пример, девчонка, на втором курсе, кстати, самая умная в свое время на мехмате МГУ, решила какую-то мировую математическую проблему и опубликовала свою статью в очень престижном забугорном математическом журнале. Мне она, кстати, подарила тогда ксерокопию своей опубликованной статьи на буржуйской мове, только, в то время я ни черта не понял в ней, а сейчас эта копия где-то затерялась. Так что вы явно недооцениваете потенциал даже младшекурсников мехмата МГУ.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36183558
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EmeryGluk (Kazan)EmeryВам смешно, из-за того, что вы знаете программу обучения 1 и 2-го курса мехмата МГУ, допустим? И полагаете, что второкурсник мехмата не поймет Кнута? Думаю, что вы плохого о них мнения.

Поймет что, простите ?

1. Пробежит по тексту и поймет знакомые буквы ?
2. Прочитает и поймет по своему ?
3. Поймет о чем ваще это ?
4. Разберется в математических обоснованиях и оценке сложности ?
5. Сам докажет пару лемм в главе ?
6. Решит пару упражнений, помеченных как легкие ?
7. Решит все упражнения ?

Хороший второкурсник может добраться до пункта 4, очень хороший до 5 (но вряд ли, поскольку у студентов всегда не хватает времени). А Кнута, с пользой для себя, можно читать долго и обстоятельно. И каждый раз находить что-то новое и интересное. Вас кто-то обманул, это не справочник алгоритмов. Это книга для души.
Вы явно не с мехмата, вот вам типичный пример.
...
Так что вы явно недооцениваете потенциал даже младшекурсников мехмата МГУ.

Поконкретнее товарищч :) каким уровнем из приведенных мной ВЫ оцениваете младшекурсника мехмата в понимании Кнута ?
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36184496
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Emery
Вы явно не с мехмата, вот вам типичный пример. В МГУ я познакомился с одним абитуриентом, собиравшегося стать математиком. Для проверки его умственных способностей подкинул ему задачку Киркмана. Нужно было построить 10 матриц размером 3*7 заполненных числами от 1 до 21 так чтобы никакая пара чисел в этой группе матриц не встречалась дважды. Аналогичную задачу для 7 матриц 3*5 заполненных числами от 1 до 15, Киркман сформулировал в 1850 году, а решена она была в 1924 году. Решение для 21 числа на тот момент не было известно. Так вот, надо отдать должное нашему абитуриенту, эту задачу он решил чуть более чем за полгода. Она повлияла на то, что он специализировался на кафедре дискретной математики, у академика Рыбникова (который написал книгу «Комбинаторный анализ», где приводил решение задачи Киркмана для 15 чисел, для 21 числа решения он не знал). Вы хотите сказать, что у Кнута, не считая теоремы Ферма, есть более сложные задачи? Даже если и есть, то к сортировке и поиску они имеют мало отношения. Другой пример, девчонка, на втором курсе, кстати, самая умная в свое время на мехмате МГУ, решила какую-то мировую математическую проблему и опубликовала свою статью в очень престижном забугорном математическом журнале. Мне она, кстати, подарила тогда ксерокопию своей опубликованной статьи на буржуйской мове, только, в то время я ни черта не понял в ней, а сейчас эта копия где-то затерялась. Так что вы явно недооцениваете потенциал даже младшекурсников мехмата МГУ.

Извините но по вашим словам выходит, что Кнуту нужно учиться у мехматовцев МГУ, а не им у него.:) Получается всемирно признанный авторитет программирования явно не может научить их чему-либо новому. Хорошо, а вы в курсе,что есть более престижные учебные заведения в мире, чем МГУ. МГУ вроде где то на 40 месте. Получается студенты этих заведений еще умнее. Бедный, бедный Кнут. Только вот звучит его имя на мировом уровне, больше чем имена этих студентов. 1% возможно студентов мехмата и останется в науке, остальные устроятся на престижные работы в фирмы, орг-ции, и не факт что из 1 этого процента кто двинет науку, как Кнут. И пусть тогда в умных книжках я увижу не алгоритм Дейкстры, Хоара, Кнута, Пратта, Рабина, а наши фамилии Иванова, Петрова, Сидорова.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36184554
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Emery
Си, ООП, классы – какая разница? Воспринимайте алгоритмы, как будто они написаны на естественном языке, думайте более абстрактно. И не воспринимайте их буквально, авторы учебников не боги, а их книги не Библия. Я смотрю на подобные алгоритмы, всего лишь как на общие идеи и часто реализую их со своими дополнениями и нюансами, иногда по несколько вариантов. Вот последний мой алгоритм внешней сортировки, о котором я уже писал здесь, реализован вообще на FoxPro (см. тему здесь «Алгоритм создания CDX файлов»), но предназначен отнюдь не для VFP, просто VFP мне показался более удобным для демонстрации этого алгоритма, как такового.
Разница большая, почему бы тогда не приводить алгоритмы на Брэйнфаке, Лиспе и пр. Вообще лучший вариант это псевдокод, либо точное словесное описание. ООП никому не нужные навороты, опять же этот закрученный брейками код, хорошо, что алгоритм небольшой, а то сидел бы человек и разбирался, почему и в каком месте происходит выход из цикла. Вы наверняка же слышали про всемирный отказ от goto. Про "думать абстрактно" вы правы, но вряд ли кому нужна лишняя смысловая нагрузка(ООП, оптимизированный код), там где это не требуется(обучение алгоритмам).
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36184590
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Emery,

Вот несколько международных премий по информатике.
Премия Дейкстры2000 — Лэсли Лэмпорт (Leslie Lamport) за работу о logical clocks
2001 — Майкл Фишер, Нэнси Линч, Майкл С. Пэтерсон (Michael J. Fischer, Nancy Lynch, Michael S. Paterson) за доказательство невозможности прийти к консенсусу, используя асинхронную передачу информации
2002 — Эдсгер Вибе Дейкстра за работу, которая ввела понятие саморегулируемости
2003 — Морис Херлихи, (Maurice Herlihy) за работу о разрешимости задачи о консенсусе в системах с совместно используемой памятью
2004 — Роберт Галлагер, Пьер Хамблет, Филип Спира (Robert G. Gallager, Pierre A. Humblet, Philip M. Spira) за распределенный алгоритм нахождения минимального остовного дерева
2005 — Маршал Пиз, Роберт Шостак, Лэсли Лэмпорт (Marshal Pease, Robert Shostak, Leslie Lamport) за работу о Византийском соглашении
2006 — Джон Мелло-Крамми, Майкл Л. Скотт (John M. Mellor-Crummey), Michael L. Scott) за алгоритм взаимного исключения
2007 — Синтия Дворк, Нэнси Линч, Лэрри Стокмайер (Cynthia Dwork, Nancy Lynch, Larry Stockmeyer) за работу о решении задачи о консенсусе в частично синхронных системах
2008 — Барух Авербух, Дэвид Пелег (Baruch Awerbuch, David Peleg) за работу о sparse partitions

Премия Кнута1996 — Эндрю Яо
1997 — Лесли Вэлиант (Leslie Valiant)
1999 — Ласло Ловас (László Lovász)
2000 — Джеффри Ульман (Jeffrey Ullman)
2002 — Христос Пападимитриу (Christos Papadimitriou)
2003 — Миклош Айтаи (Miklos Ajtai)
2005 — Михалис Яннакакис (Mihalis Yannakakis)
2007 — Нэнси Линч (Nancy Lynch)
2008 — Фолькер Штрассен (Volker Strassen)]

Премия Гёделя1993 Ласло Бабаи, Шафи Гольдвассер, Сильвио Микали, Шломо Моран и Чарльз Ракофф (László Babai, Shafi Goldwasser, Silvio Micali, Shlomo Moran, Charles Rackoff) за разработку интерактивные системы доказательств
1994 Йохан Хостад (Johan Håstad) за доказательство принадлежности функции чётности (на boolean circuits) к экспоненциальному классу сложности
1995 Нил Иммермэн, Роберт Шелепчени (Neil Immerman, Róbert Szelepcsényi) за теорему Иммермэна-Шелепчени (теория сложности вычислений)
1996 Марк Джеррам, Элистер Синклер (Mark Jerrum, Alistair Sinclair) за исследования цепей Маркова и аппроксимацию перманента матриц
1997 Джозеф Хэлперн, Йорам Мосес (Joseph Halpern, Yoram Moses) за формальное определение понятия «знание» в распределённых средах
1998 Сейносуке Тода (Seinosuke Toda) за теорему Тода, которая показала связь между классами сложности PP и PH
1999 Питер Шор (Peter Shor) за алгоритм Шора для факторизации чисел за полиномиальное количество времени на квантовом компьютере
2000 Мойше Варди, Пьер Вольпер (Moshe Y. Vardi, Pierre Wolper) за исследование проверки моделей с помощью конечных автоматов
2001 Санджив Арора, Уриель Фейге, Шафи Гольдвассер, Карстен Лунд, Ласло Ловас, Раджив Мотвани, Шмуель Сафра, Мадху Судан и Марио Шегеди (Sanjeev Arora, Uriel Feige, Shafi Goldwasser, Carsten Lund, László Lovász, Rajeev Motwani, Shmuel Safra, Madhu Sudan, Mario Szegedy) за теорему PCP и её приложение
2002 Джеро Сенизергуес (Géraud Sénizergues) за доказательство разрешимости эквивалентности детерминированных автоматов с магазинной памятью
2003 Йоав Фрейнд и Роберт Шапире (Yoav Freund, Robert Schapire) за алгоритм AdaBoost
2004 Морис Херлихи, Майк Сакс, Нир Шавит и Фотиос Захароглу (Maurice Herlihy, Mike Saks, Nir Shavit, Fotios Zaharoglou) за приложение топологии в теории распределённых вычислений
2005 Нога Алон, Йосси Матиас, Марио Шегеди (Noga Alon, Yossi Matias, Mario Szegedy) за основополагающие исследования в области потоковых алгоритмов
2006 Маниндра Агравал, Нирадж Кайал, Нитин Саксена (Manindra Agrawal, Neeraj Kayal, Nitin Saxena) за тест простоты — тест Агравала-Каяла-Саксены
2007 Александр Разборов,[2] Стивен Рудик (Alexander Razborov, Steven Rudich) за «естественные доказательства»[3]
2008 Шангуа Тенг, Дэниел Спилмэн, Стивен Рудик (Shanghua Teng, Daniel Spielman, Steven Rudich) за «сглаженный анализ» алгоритмов

Премия имени Грейс Мюррей Хоппер1971 Дональд Кнут
1972 Paul H. Dirksen, Paul H. Cress
1973 Lawrence M. Breed, Richard H. Lathwell, Roger Moore
1974 George N. Baird
1975 Allen L. Scherr
1976 Edward H. Shortliffe
1977 не присуждалась
1978 Raymond Kurzweil
1979 Stephen Wozniak
1980 Robert M. Metcalfe
1981 Daniel S. Bricklin
1982 Brian K. Reid
1983 не присуждалась
1984 Daniel Henry Holmes Ingalls, Jr.
1985 Cordell Green
1986 William N. Joy
1987 Джон Остераут
1988 Guy L. Steele
1989 W. Daniel Hillis
1990 Ричард Столлман [1]
1991 Feng-hsiung Hsu
1992 не присуждалась
1993 Бьярне Строуструп
1994 не присуждалась
1995 не присуждалась
1996 Shafrira Goldwasser
1997 не присуждалась
1998 не присуждалась
1999 Wen-mei Hwu
2000 Lydia Kavraki
2001 George Necula
2002 Ramakrishnan Srikant
2003 Stephen W. Keckler
2004 Jennifer Rexford [2]
2005 Omer Reingold [3]
2006 Daniel Klein
2007 Vern Paxson

Премия Лёбнера1991 Джозеф Вайнтрауб PC Therapist
1992 Джозеф Вайнтрауб PC Therapist
1993 Джозеф Вайнтрауб PC Therapist
1994 Thomas Whalen TIPS
1995 Джозеф Вайнтрауб PC Therapist
1996 Jason Hutchens HeX
1997 David Levy Converse
1998 Robby Garner Albert One
1999 Robby Garner Albert One
2000 Ричард Воллес A.L.I.C.E.
2001 Ричард Воллес A.L.I.C.E.
2002 Kevin Copple Ella
2003 Juergen Pirner Jabberwock
2004 Ричард Воллес A.L.I.C.E.
2005 Ролло Карпентер George
2006 Ролло Карпентер Joan
2007 Robert Medeksza Ultra Hal
2008 Fred Roberts Elbot

Премия Тьюринга1966 Алан Дж. Перлис За его влияние в области обобщенных техник программирования и построения компиляторов
1967 Морис Винсент Уилкс Профессор Уилкс более всего известен как проектировщик EDSAC, первого компьютера, допускающего внутреннее хранение программ. Построенный в 1949, EDSAC использовал память на линиях задержки. Он также известен, в соавторстве с Виллером и Гиллом как автор книги «Preparation of Programs for Electronic Digital Computers», 1951 года, в которой вводится важнейшее понятие библиотеки
1968 Ричард Хэмминг За работы в области численных методов, систем автоматического кодирования, кодов определения и корректировки ошибок
1969 Марвин Минский За пионерские работы по проблеме искусственного интеллекта
1970 Джеймс Харди Уилкинсон За его исследования в области численного анализа, способствовавшие использованию высокоскоростных цифровых компьютеров, приобретшие особое значение в свете его работ по вычислениям в линейной алгебре и «обратному» анализу ошибок
1971 Джон Мак-Карти Лекция доктора Мак-Карти «Современное состояние исследований по искусственному интеллекту» освещает состояние дел в области, которая обязана многими существенными успехами его работам
1972 Эдсгер Дейкстра Эдсгеру Дейкстре принадлежит значительный вклад в конце 1950-х годов в разработку языка АЛГОЛ, язык программирования высокого уровня, ставший воплощением ясности и математической строгости. Он один из ярчайших представителей науки и искусства языков программирования во всей их общности, а также человек во многом способствовавший пониманию их структуры, представления и реализации. Его публикации в течение пятнадцати лет охватывают широкий спектр тем от теоретических статей по теории графов до базовых руководств, описаний и философских размышлений в области языков программирования
1973 Чарльз Бахман За его выдающийся вклад в технологии баз данных
1974 Дональд Кнут За его огромный вклад в анализ алгоритмов, разработку языков программирования, и в особенности за создание широко известной серии книг под общим названием «Искусство программирования»
1975 Аллен Ньюэлл и Герберт Саймон Их общие усилия в течение двадцати лет, вначале совместно с Дж. К. Шоу, в составе корпорации RAND, впоследствии вместе с профессорско-преподавательским составом и студенческими группами университета Carnegie Mellon, ознаменовались фундаментальным вкладом в искусственный интеллект, психологию механизмов человеческого восприятия и обработку списков
1976 Майкл Рабин и Дана Скотт За их общую статью под названием «Конечные автоматы и проблема разрешимости для них», в которой была предложена идея недетерминированного автомата, концепции, доказавшей впоследствии свою исключительную ценность. Их, ставшая классической, статья послужила источником вдохновения для многих последующих работ в этой области
1977 Джон Бэкус За его глубокий, продолжительный и оказавший большое влияние вклад в проектирование практических высокоуровневых программных систем, в частности за его работу над языком FORTRAN, и его оригинальную публикацию по формализации спецификаций языков программирования
1978 Роберт Флойд За его несомненное влияние на методологию создания эффективного и надёжного программного обеспечения и за его помощь в становлении таких областей компьютерных наук как теория парсинга, семантика языков программирования, автоматическая верификация программ, автоматический синтез программ, и анализ алгоритмов
1979 Айверсон, Кеннет За его пионерскую работу в области языков программирования и математической записи, имеющую результатом то, что сейчас известно среди специалистов как APL, за его вклад в реализацию интерактивных систем, использование APL в образовательных целях, а также в теорию и практику языков программирования
1980 Ч. Энтони Р. Хоар За его фундаментальный вклад в определение и разработку языков программирования
1981 Эдгар Кодд За его фундаментальный и продолжительный вклад в теорию и практику систем управления базами данных, в особенности реляционного типа
1982 Стивен Артур Кук За существенный прогресс, достигнутый им в понимании сложности вычислений. Его работа положила основу теории NP-полноты. Исследнование свойств и границ этого класса стало одним из важнейших направлений теории вычислительных систем за последние десять лет
1983 Кен Томпсон и Денис М. Ритчи За разработку общей теории операционных систем и в частности за создание Unix
1984 Никлаус Вирт За разработку серии инновационных компьютерных языков, ЭЙЛЕР, ALGOL-W, МОДУЛА и ПАСКАЛЬ
1985 Ричард М. Карп За его продолжительный вклад в теорию алгоритмов, в том числе за разработку эффективных алгоритмов для потоков на сетях и других комбинаторных оптимизационных задач, сопоставление вычислений полиномиальной сложности с интуитивным понятием эффективности, и, самое главное, за вклад в теорию NP-полноты
1986 Джон Хопкрофт и Роберт Тарьян За фундаментальные достижения в области разработки и анализа алгоритмов и структур данных
1987 Джон Кок За выдающийся вклад в проектирование и теорию компиляторов, архитектуру больших систем и разработку RISC-компьютеров
1988 Айвен Сазерленд За его пионерский и дальновидный вклад в компьютерную графику, начиная от изобретения Sketchpadа, но не заканчивающегося им
1989 Уильям Кэхэн За его фундаментальный вклад в численный анализ. Один из первых экспертов в вычислениях с плавающей запятой. Кэхэн также посвятил себя задаче «сделать мир безопасным для численных расчётов»
1990 Фернандо Х. Корбато За его пионерскую работу по созданию концепции и управлению разработками по созданию общецелевых, крупномасштабных компьютерных систем с разделением времени и ресурсов CTSS и Multics
1991 Робин Милнер За три различных полноценных достижения: 1) LCF прувер, автоматизирующий доказательства в логике вычислимых функций Скотта, по-видимому первый, инструмент автоматизированного конструирования доказательств, построенный на теоретическом фундаменте и при этом полезный на практике; 2) ML, первый язык программирования использующий полиморфный вывод типов вместе с типизированным механизмом обработкой ошибок; 3) CCS, общая теория конкурентных вычислений. Вдобавок, он сформулировал и развил полную абстракцию, теорию о связи между операционной и денотационной семантиками
1992 Батлер В. Лэмпсон За вклад в разработку распределённых, персональных вычислительных сред и технологию их реализации: рабочие станции, сети, операционные системы, программные системы, дисплеи, безопасность и обмен документами
1993 Юрис Хартманис и Ричард Э. Стернс В дань их основополагающим работам, обеспечившим базу теории сложности вычислений.
1994 Эдвард Фейгенбаум и Радж Редди За первопроходческие разработки и создание крупномасштабных систем искусственного интеллекта и демонстрацию практической важности и потенциальной коммерческой выгоды от технологий использующих искусственный интеллект
1995 Мануэль Блюм В дань его работам по основаниям теории сложности вычислений и её применению к криптографии и верификации программ
1996 Амир Пнуели За плодотворную работу по внедрению темпоральной логики в вычислительные науки, и за выдающийся вклад в верификацию программ и систем
1997 Дуглас Энгельбарт За вдохновляющее предвидение будущего развития интерактивных вычислений и изобретение ключевых технологий помогающих это предвидение реализовать
1998 Джим Грей За основополагающие идеи в области баз данных, исследования обработки транзакций и техническое лидерство в реализации систем.
1999 Фредерик Ф. Брукс, Мл. За исторически значимый вклад в компьютерную архитектуру, операционные системы, и проектирование программного обеспечения.
2000 Эндрю Чи-Чи Яо В дань его фундаментальному вкладу в теорию вычислений, включающему, основанную на понятии сложности вычисления, теорию генерации псевдо-случайных чисел, криптографии, и коммуникационной сложности
2001 Уле-Йохан Даль и Кристен Нигаард За идеи, фундаментальные для развития объектно-ориентированного программирования, возникшие в ходе разработки языков программирования Simula I и Simula 67
2002 Рональд Л. Ривест, Шамир, Ади and Леонард М. Адлеман За уникальный вклад по увеличению практической пользы систем шифрования с открытым ключом
2003 Алан Кэй За многочисленные новаторские идеи, которые легли в основу современных объектно-ориентированных языков, руководство командой разработчиков языка Smalltalk и за фундаментальный вклад в развитие области ПК
2004 Винтон Серф и Роберт Кан За пионерскую работу по проблеме межсетевого обмена (англ. internetworking), включая разработку и реализацию основных Интернет-протоколов, TCP/IP и за ведущую роль в области компьютерных сетей
2005 Питер Наур За фундаментальный вклад в проектирование языков программирования и создание языка Алгол 60, а также в проектирование компиляторов, и в искусство и технику компьютерного программирования
2006 Френсис Э. Аллен За новаторский вклад в теорию и практику оптимизации компьютерных программ, послуживший основой для современных оптимизирующих компиляторов и автоматическому распаралелливанию программ
2007 Эдмунд М. Кларк, Аллен Эмерсон и Иосиф Сифакис За их роль в развитии проверки моделей — высоко эффективную технику верификации программ, широко применяемую при разработке как программного так и аппаратного обеспечения[2]
2008 Барбара Лисков За вклад в практические и теоретические основы языков программирования и системного дизайна, в частности в области исследований устойчивости к ошибкам, абстракции данных и распределённых вычислений.


Много ли здесь русских фамилий и имен несравнимых мехматовцев МГУ?
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36185138
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентик,

Ну, пара фамилий есть точно. И ещё неизвестно, не учились ли Моше, Йося, Давид и т.д. в МГУ.)
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36185193
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентик
Много ли здесь русских фамилий и имен несравнимых мехматовцев МГУ?
Вы хотите про рекламирование, борьбу бульдогов на рынке образования и такое право человека как свободный доступ_куда_либо пообщаться?
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36185482
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикИзвините но по вашим словам выходит, что Кнуту нужно учиться у мехматовцев МГУ, а не им у него.:) Получается всемирно признанный авторитет программирования явно не может научить их чему-либо новому. Хорошо, а вы в курсе,что есть более престижные учебные заведения в мире, чем МГУ. МГУ вроде где то на 40 месте. Получается студенты этих заведений еще умнее. Бедный, бедный Кнут. Только вот звучит его имя на мировом уровне, больше чем имена этих студентов. 1% возможно студентов мехмата и останется в науке, остальные устроятся на престижные работы в фирмы, орг-ции, и не факт что из 1 этого процента кто двинет науку, как Кнут. И пусть тогда в умных книжках я увижу не алгоритм Дейкстры, Хоара, Кнута, Пратта, Рабина, а наши фамилии Иванова, Петрова, Сидорова.
Эмоционально, но не очень логично. Все гораздо проще, и не требует на то никаких эмоций. Кнут был первым, кто весьма тщательно и подробно исследовал все известные в его время компьютерные алгоритмы по широкому кругу вопросов и в эти заслуги его никто не отрицает. Я сам периодически почитываю его третий том «Сортировка и поиск», как имеющий отношение к моей области деятельности. Однако для любой реальной работы он мне помог мало, все подходящие для меня алгоритмы я нахожу где угодно, но только не у Кнута, но это не меняет моего отношения к нему, для меня он просто классик в своей области. Сейчас Кнут хорош для «внеклассного чтения», а отнюдь не как учебник по программированию, но если вы нашли у него что-то годящееся для вашей профессиональной работы, то этот момент было бы интересно обсудить.

Более престижные университеты чем МГУ безусловно есть, например Национальная школа администрации во Франции (там учиться только будущая правящая элита Франции), Йельский университет в Штатах (из него вышло множество президентов США и простым смертным туда путь заказан). Есть Оксфорд и Гарвард в Британии, где учатся весьма и весьма не бедные товарищи и т.д. Т.е. престиж там это, прежде всего социальное положение и мега и гигабаксы. По количеству гигабаксов на одного студента, МГУ может стоять и на 200-м месте. Буш вон тот тоже окончил Йель и что кто назовет его шибко умным? Влиятельным – да! Но, умным?

Давайте лучше рассмотрим курсы лекций читаемых на мехмате МГУ и других «престижных учебных заведениях в мире». Возьмем, например 4-х семестровый курс лекций Камынина по матанализу, читаемых им на 1-м и 2-м курсах для математиков МГУ. Или Алгебру-3, читаемую на 3-м курсе. Вы можете назвать реальный курс лекций из любого мирового ВУЗа, круче, чем Камыниновский? Я очень сомневаюсь. По крайней мере, вы должны иметь представление об матанализе Камынина. А это курс, который напичкан такими абстрактными топологическими и алгебраическими идеями, что «крышу рвет» почти в буквальном смысле. А «Алгебру-3» приводила к реальному умопомешательству у слабых студентов. И вы думаете, что большинство студентов мехмата не справиться с задачами Кнута? Да как два байта переслать! Скажем, на первой неделе обучения первого курса, вам дают домашнее задание из пары десятков упражнений типа вычислить предел lim((sin(tg(x)) – tg(sin(x)))/x^7) при x->0 . Вычислите хотя бы этот предел за один вечер вручную. А на зачете по матанализу вам спокойно могут дать задачу, которая требует выкладок на сотню страниц рукописного текста. Получаете задачу и идете спокойно куда хотите и там ее решаете, пока не решите. У кого на это уходила неделя, а у некоторых месяц, со всеми вытекающими последствиями (не допущением к экзаменам и т.п.). Причем преп дает вам вычислить какой-нибудь интеграл Остроградского – Гаусса и говорит, не надейтесь что ответ будет «круглым» числом, готовьтесь к какому-нибудь числу типа –1643677/6578158 . Или любой физик спокойно без угрызений совести может вынести дифференциал подинтегральной функции за пределы бэта-интеграла Эйлера и, в общем, будет прав. Но попробуйте доказать корректность этой операции, хотя бы за неделю (это еще не самая сложная задача на зачете). А про «Алгебру-3» это вообще отдельный разговор. И вы думаете, что после подобных испытаний вы сможете напугать студента задачами Кнута?

Конечно, сейчас многие уходят из науки, и я ушел из прикладной науки в программирование. Но так это проблема государства, которое отказывается финансировать свою науку после распада СССР. Так что не надо язвить по этому поводу. Наши лучшие «Ивановы, Петровы, Сидоровы» отнюдь не тупее «Дейкстры, Хоара, Кнута, Пратта, Рабина», они просто беднее. И не надо их винить в этом тоже, любому гению всегда можно создать неприемлемые условия, особенно если за это дело берется само государство. Однако тот же Ильфак Гульфанов, окончивший мехмат МГУ сейчас имеет мировую славу благодаря своему интерактивному дизассемблеру IDA Pro . В общем, разговор явно вышел за пределы обсуждения алгоритмов в своей работе.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36185503
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если как два пальца :) может продемонстрируешь ?
Задачу я выберу (средней сложности)
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36185507
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикРазница большая, почему бы тогда не приводить алгоритмы на Брэйнфаке, Лиспе и пр. Вообще лучший вариант это псевдокод, либо точное словесное описание. ООП никому не нужные навороты, опять же этот закрученный брейками код, хорошо, что алгоритм небольшой, а то сидел бы человек и разбирался, почему и в каком месте происходит выход из цикла. Вы наверняка же слышали про всемирный отказ от goto. Про "думать абстрактно" вы правы, но вряд ли кому нужна лишняя смысловая нагрузка(ООП, оптимизированный код), там где это не требуется(обучение алгоритмам).
Ну, выход всегда есть если вам что-то не нравиться, садитесь и ваяете собственный шедевр. Лично я, сколько учился, никогда не воспринимал никакую информацию, как «последнее слово» в науке или образовании. И нет правил без исключения. Да, лично я не практикую «goto», но не потому, что это плохо в принципе (для меня не факт), а просто потому, что есть его вполне приемлемые эквиваленты (exit, break). В ассемблере, например, операции типа j** и jmp, (условные и безусловные переходы) встречаются как «с добрым утром». Если мне не нравиться одна книга, я просто ищу другую, благо выбор в эпоху Интернета вполне достаточен.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36185527
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикМного ли здесь русских фамилий и имен несравнимых мехматовцев МГУ?
Хоть много, хоть ни одной – что это доказывает? 40-е место в МГУ среди «блатных» университетов? Может даже и доказывает, ну и что? Вы ринулись в область политики, хоть и от науки, а это уже «совсем другая песня». Много ли действительных миротворцев среди лауреатов Нобелевской премии мира? Скорее, как у Оурелла в романе «1984», министерство правды лжет, министерство мира ведет войну и т.д. и т.п. А что означают нобелевские мира по экономике, большинство которых – американцы? Да, да, вы совершенно правы, именно американцам принадлежит авторство современного «мирового экономического кризиса». У других бы на это «мозгов не хватило». Особенно, если учесть, что экономика, это современная лженаука, причем не единственная, список остальных вы можете продолжить сами.

Модератор:
я про это ветвление уже как бы намекнул
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36186292
Vowk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В повседневной работе не столько важно знание напамять алгоритмов, сколько "ощущение правильности" программы.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36186301
Гыы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VowkВ повседневной работе не столько важно знание напамять алгоритмов, сколько "ощущение правильности" программы.

Это, так называемое, "ощущение правильности" не возникает само по себе - это результат опыта и хорошо отточенных фундаментальных знаний и навыков.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36186325
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAYAKOV_SVАлгоритмы нужны. Причем обязательно. Уровень программиста как раз можно измерить знаниями алгоритмов, чем больше он их знает, тем лучше. Но и тут нужна мера, знать все невозможно поэтому нужно избирать, что нужно знать для работы. А так изучать основные алгоритмы надо. Если человек не знает алгоритмов, что же он напишет?
Алгоритмы - это бесконечный пласт математических моделей, адаптированный под конкретные технические условия (Фон-Неймановская архитектура например). И знать их все, разумеется невозможно. Я к примеру навскидку не помню ни одного алгоритма на графах. Но я знаю их названия. Знаю где о них можно почитать и узнать временную сложность и если надо готовую имплементацию на языках семейства Pascal. Хорошему программисту нужно понимать связь между фактическим временем отклика от процедуры или функции и o(n) алгоритма. Нужно попутно понимать особенности железок. Знать какие отклики от кешей 1,2 уровня оперативной памяти и диска, сетевого канала. Нужно быть врачом и лечить ПО, когда ему плохо. Нужно знать, куда можно воткнуть датчики и сенсоры (даже если у вас нет под рукой sources) чтобы понять, почему вчера отчёт шёл 5 минут а сегодня идёт 2 часа, . Нужно быть намножко архитектором и закладывать в свой программный продукт возможность роста и развития а не делать по принципу "после меня - хоть потом". Нужно быть немножечко маркетологом и понимать, как сделать GUI привлекательным (или как минимум не вызывающем рвотные позывы ). Нужно знать юридическую сторону ПО и принимать решения о выборе инструментария, исходя из достаточый условий. И, как мне кажется хороший программист должен быть "инженером знаний". Т.е. уметь быстро находить нужную информацию, сравнивать анализировать и выбирать лучшие practices. Грубо говоря, надо следовать принципу Я-ЗНАЮ-ВСЁ-ЧТО-ГДЕ-ЛЕЖИТ.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36186674
MAYAKOV_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Круто!!! Я, из перечисленного далеко не все знаю и умею. Мне кажется, это у нас так повелось, что программист совмещает в себе многие профессии. Это наверно из-за того, что работодатель хочет нанять как можно меньше народу и получить из них максимум, а то и более.
Я как-то видел одну известную русскую игруху, пройти мне ее так и не удалось из-за большого количества глюков и ляпов. Посмотрел список авторов, а там всего-то 5 программистов ...
Похожая ситуация и с некоторыми другими русскими программными продуктами, не буду их называть.
Смотрел импортные игрухи - там людей, учавствующих в разработке за сотню переваливает - и каждый занимается своим делом - кто программист, кто тестер и.т.д.
Вот это организация :)

Такое чувство, что все экономят на людях и не думают о качестве ПО.
Меня как-то приглашали работать программистом, в предварительной беседе выяснилось, что им нужен не программист, а настройщик
Ну это я немного не по теме. Решил написать свои размышления :)
А алгоритмы нужны, куда без них, надо же хотя бы иметь представление, как сортировка работает
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187258
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Emery
Эмоционально, но не очень логично. Все гораздо проще, и не требует на то никаких эмоций. Кнут был первым, кто весьма тщательно и подробно исследовал все известные в его время компьютерные алгоритмы по широкому кругу вопросов и в эти заслуги его никто не отрицает. Я сам периодически почитываю его третий том «Сортировка и поиск», как имеющий отношение к моей области деятельности. Однако для любой реальной работы он мне помог мало, все подходящие для меня алгоритмы я нахожу где угодно, но только не у Кнута, но это не меняет моего отношения к нему, для меня он просто классик в своей области. Сейчас Кнут хорош для «внеклассного чтения», а отнюдь не как учебник по программированию, но если вы нашли у него что-то годящееся для вашей профессиональной работы, то этот момент было бы интересно обсудить.
Мои эмоции, только говорят о том, что с вами интересно дисскутировать:)
Опять же не понимаю, почему Кнут не годится в учебники? Годится, но для мехматовцев МГУ, или
людей, которые знают математику и у них есть время для его штудирования. Алгоритмы Кнута фундамениальны, они лишь основа основ. Есть куча алгоримов, которые не основные, а узкоспециализированы, например алгоритмы сжатия, компьютерной графики. Изучают их люди уже по другим источникам. Мне кажется неуместным говорить о проф. непригодности его книги в работе. Работа же у всех разная.
Emery
Более престижные университеты чем МГУ безусловно есть, например Национальная школа администрации во Франции (там учиться только будущая правящая элита Франции), Йельский университет в Штатах (из него вышло множество президентов США и простым смертным туда путь заказан). Есть Оксфорд и Гарвард в Британии, где учатся весьма и весьма не бедные товарищи и т.д. Т.е. престиж там это, прежде всего социальное положение и мега и гигабаксы. По количеству гигабаксов на одного студента, МГУ может стоять и на 200-м месте. Буш вон тот тоже окончил Йель и что кто назовет его шибко умным? Влиятельным – да! Но, умным?

Немножко детские выводы, если честно. Вы случайно не из тех людей, которые считают, что у нас САМЫЕ САМЫЕ, а во всем мире, так... дурачки собрались? Я например давно уже в это не верю и вам советую. Самокритика никогда не бывает бесполезна. А про продажность мест в университетах, да вы просто агнец божий, как у вас все правильно и хорошо выходит. А например, еще более впечатляющую продажность мест в наших образовательных учреждениях, в том числе и МГУ, вы во нимание не принимали?

Emery
Давайте лучше рассмотрим курсы лекций читаемых на мехмате МГУ и других «престижных учебных заведениях в мире». Возьмем, например 4-х семестровый курс лекций Камынина по матанализу, читаемых им на 1-м и 2-м курсах для математиков МГУ. Или Алгебру-3, читаемую на 3-м курсе. Вы можете назвать реальный курс лекций из любого мирового ВУЗа, круче, чем Камыниновский? Я очень сомневаюсь. По крайней мере, вы должны иметь представление об матанализе Камынина. А это курс, который напичкан такими абстрактными топологическими и алгебраическими идеями, что «крышу рвет» почти в буквальном смысле. А «Алгебру-3» приводила к реальному умопомешательству у слабых студентов. И вы думаете, что большинство студентов мехмата не справиться с задачами Кнута? Да как два байта переслать! Скажем, на первой неделе обучения первого курса, вам дают домашнее задание из пары десятков упражнений типа вычислить предел lim((sin(tg(x)) – tg(sin(x)))/x^7) при x->0 . Вычислите хотя бы этот предел за один вечер вручную. А на зачете по матанализу вам спокойно могут дать задачу, которая требует выкладок на сотню страниц рукописного текста. Получаете задачу и идете спокойно куда хотите и там ее решаете, пока не решите. У кого на это уходила неделя, а у некоторых месяц, со всеми вытекающими последствиями (не допущением к экзаменам и т.п.). Причем преп дает вам вычислить какой-нибудь интеграл Остроградского – Гаусса и говорит, не надейтесь что ответ будет «круглым» числом, готовьтесь к какому-нибудь числу типа –1643677/6578158 . Или любой физик спокойно без угрызений совести может вынести дифференциал подинтегральной функции за пределы бэта-интеграла Эйлера и, в общем, будет прав. Но попробуйте доказать корректность этой операции, хотя бы за неделю (это еще не самая сложная задача на зачете). А про «Алгебру-3» это вообще отдельный разговор. И вы думаете, что после подобных испытаний вы сможете напугать студента задачами Кнута?

Вы случаем не ректор МГУ?:) Я бесконечно уважаю этот рассадник гениев математики нашей страны, но прочитав вашу характерстику обучения в нем, считаю сам процесс обучения в корне неправильным. Пусть умы гениев не забиваюn всякими абстракциями, а сразу подкинут им научно нерешенные проблемы. Мне кажется будет больше пользы и для студентов и для науки. Без иронии заверяю вас, что книги, выпущеные этим университетом и его преподавателями я обожаю, они действительно эталоны проффесионализма. И приймите во внимание, а еще и поймите, что не образование(академия, универ, дядя Петя доктор наук,...) делает человека образованным, а он сам . Из предшествуещего предложения уже и делайте выводы.

Emery
Конечно, сейчас многие уходят из науки, и я ушел из прикладной науки в программирование. Но так это проблема государства, которое отказывается финансировать свою науку после распада СССР. Так что не надо язвить по этому поводу. Наши лучшие «Ивановы, Петровы, Сидоровы» отнюдь не тупее «Дейкстры, Хоара, Кнута, Пратта, Рабина», они просто беднее.

*громкие аплодисменты* Золотые слова. Корень всех проблем. Даже сойдемся на том, что люди везде примерно одинаково способные, только нужны достаточные вложения(финансирование, организация, мотивация и пр.) Вложите сумму денег и любой захудалый городок в превратится в всемирный научный центр.

Emery
И не надо их винить в этом тоже, любому гению всегда можно создать неприемлемые условия, особенно если за это дело берется само государство. Однако тот же Ильфак Гульфанов, окончивший мехмат МГУ сейчас имеет мировую славу благодаря своему интерактивному дизассемблеру IDA Pro . В общем, разговор явно вышел за пределы обсуждения алгоритмов в своей работе.
Григо́рий Я́ковлевич Перельма́н — российский математик, автор доказательства гипотезы Пуанкаре - окончил мехмат ЛГУ.
Ю́рий Влади́мирович Матиясе́вич Будучи аспирантом, в 1970 году сделал последний шаг в доказательстве алгоритмической неразрешимости задачи о существовании решений у произвольного диофантового уравнения, известной также как десятая проблема Гильберта, завершив тем самым программу исследований, основную часть которой к тому времени выполнили M. Davis, H. Putnam и J. Robinson.(мехмат ЛГУ)
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187273
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Emery
Ну, выход всегда есть если вам что-то не нравиться, садитесь и ваяете собственный шедевр. Лично я, сколько учился, никогда не воспринимал никакую информацию, как «последнее слово» в науке или образовании. И нет правил без исключения. Да, лично я не практикую «goto», но не потому, что это плохо в принципе (для меня не факт), а просто потому, что есть его вполне приемлемые эквиваленты (exit, break). В ассемблере, например, операции типа j** и jmp, (условные и безусловные переходы) встречаются как «с добрым утром». Если мне не нравиться одна книга, я просто ищу другую, благо выбор в эпоху Интернета вполне достаточен.

Строго доказано, что любой алгоритм можно реализовать с помощью 3 структур ЯВУ: циклы, линейность выполнения(пошаговое выполнение программы) и ветвление. break оставлен для сравнительно редких случаев, когда его использование оправдано, значительно сокращается размер текста программы или др. В ассемблере нет циклов, ветвлений как таковых, а есть только условные и безусловные переходы, но стоит отметить что асм это не ЯВУ.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187278
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EmeryстудентикМного ли здесь русских фамилий и имен несравнимых мехматовцев МГУ?
Хоть много, хоть ни одной – что это доказывает? 40-е место в МГУ среди «блатных» университетов? Может даже и доказывает, ну и что? Вы ринулись в область политики, хоть и от науки, а это уже «совсем другая песня». Много ли действительных миротворцев среди лауреатов Нобелевской премии мира? Скорее, как у Оурелла в романе «1984», министерство правды лжет, министерство мира ведет войну и т.д. и т.п. А что означают нобелевские мира по экономике, большинство которых – американцы? Да, да, вы совершенно правы, именно американцам принадлежит авторство современного «мирового экономического кризиса». У других бы на это «мозгов не хватило». Особенно, если учесть, что экономика, это современная лженаука, причем не единственная, список остальных вы можете продолжить сами.

Модератор:
я про это ветвление уже как бы намекнул


Ну если мы о математиках, то уж им то тчно не светит Нобелевка по определению. А премия Филдса пожалуйста, наш соотечественник Перельман Г. И. вполне состоятельный пример. То бишь лопату( ручку, калькулятор, ...) в руки и вперед покорять горизонты науки. И не сваливать все на ужасную и жестокую политику.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187312
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентик,

в ЛГУ(СПБГУ) не мехмат, а матмех
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187359
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилстудентик,

в ЛГУ(СПБГУ) не мехмат, а матмех

Да ошибка вышла, но на контекст предыдущих сообщений не влияет.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187361
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикОпять же не понимаю, почему Кнут не годится в учебники? Годится, но для мехматовцев МГУ, или людей, которые знают математику и у них есть время для его штудирования. Алгоритмы Кнута фундамениальны, они лишь основа основ. Есть куча алгоримов, которые не основные, а узкоспециализированы, например алгоритмы сжатия, компьютерной графики. Изучают их люди уже по другим источникам. Мне кажется неуместным говорить о проф. непригодности его книги в работе. Работа же у всех разная.
Я тоже не понимаю, почему для вас Кнут – «священная корова»? Для меня он один из классиков базовых компьютерных алгоритмов. Я же не министерство образования, высказал только свое мнение, не хотите не соглашайтесь, используйте Кнута, хоть вместо букваря в школе, мне по большому счету ульрафиолетово :) . Если он кому помог в профессиональной работе, я бы с удовольствием прочитал про это. Лично мне толку от Кнута было немного, грубо говоря. Я искал лучший алгоритм внешней сортировки у него, не нашел. Может быть вы мне назовете таковой из его 3-го тома?

студентикНемножко детские выводы, если честно. Вы случайно не из тех людей, которые считают, что у нас САМЫЕ САМЫЕ, а во всем мире, так... дурачки собрались? Я например давно уже в это не верю и вам советую. Самокритика никогда не бывает бесполезна. А про продажность мест в университетах, да вы просто агнец божий, как у вас все правильно и хорошо выходит. А например, еще более впечатляющую продажность мест в наших образовательных учреждениях, в том числе и МГУ, вы во нимание не принимали?
«Немножко детские выводы» и «Вы случаем не ректор МГУ?:)», ниже – весьма забавные предположения :) . Ничего я не считаю, просто я учился в и в МГУ и Политехе и вполне представляю бедственное положение нашего образования. Когда я поступал на мехмат, то меня поразил весьма низкий конкурс – менее 2.5 человек на место. Поступить было абсолютно легко, ничего сверх школьной программы не требовалось. Другое дело, что учиться было очень тяжело, часто даже призеры математических олимпиад вылетали за неуспеваемость. Я не представляю, зачем платить за поступление на мехмат, если ты не в состоянии учиться там. Проще уж просто купить диплом, я сам видел в подземных переходах чистые бланки дипломов с печатями и подписями. Впрочем, мне это мало интересно. Я учился ради знаний, а если кто-то учится ради «корочек», то это его дело. Одна студентка мне честно призналась, что поступила на мехмат, только потому, что там «очень много умных мальчиков», а она к таковым не ровно дышит, другие не скрывали, что их цель «выйти замуж за москвича и остаться жить в Москве», практически все они своей цели добились. Так что, у всех разные цели обучения :) . Могу еще добавить, что нас (математиков) очень любили ребята из МГИМО, один из них честно признался, что они, элита, дети власть предержащих, никого не уважают и не ценят из простых смертных, кроме как математиков из мехмата МГУ, потому что это единственная специальность, которую они не способны осилить в принципе. Они очень часто приходили к нам, оттачивали свое дипломатическое мастерство, проводили брифинги и тому подобное. Надо сказать, что та элита, с которой я общался, имела очень высокий интеллектуальный уровень. Одна студентка МГИМО в 18 лет знала в совершенстве несколько иностранных языков, в том числе японский. С ней было бесконечно интересно разговаривать, хотя они и циничны, до мозга костей. Мне она на память нарисовала меня, причем весьма профессионально, и подписалась иероглифами на катакане.

студентикВы случаем не ректор МГУ?:) Я бесконечно уважаю этот рассадник гениев математики нашей страны, но прочитав вашу характерстику обучения в нем, считаю сам процесс обучения в корне неправильным. Пусть умы гениев не забиваюn всякими абстракциями, а сразу подкинут им научно нерешенные проблемы. Мне кажется будет больше пользы и для студентов и для науки. Без иронии заверяю вас, что книги, выпущеные этим университетом и его преподавателями я обожаю, они действительно эталоны проффесионализма. И приймите во внимание, а еще и поймите, что не образование(академия, универ, дядя Петя доктор наук,...) делает человека образованным, а он сам . Из предшествуещего предложения уже и делайте выводы.
Могу вас заверить, что у ректора МГУ нет ни времени, ни желания тусоваться на подобных форумах. Если я не ошибаюсь, сейчас ректор Садовничий, бывший завкафедры матанализа, а ему уже, пожалуй, за 70.

Главный принцип обучения на мехмате не опускаться до среднего уровня студента, а ориентироваться на максимально высокий его уровень, подтягивая всех остальных к нему. Да, это вызывает такой шок, что я, например, целых полгода был в полной прострации, пока более-менее адаптировался к этому уровню обучения. Плохо это или хорошо? Думаю, что для мехмата МГУ это нормально. Молодой организм в состоянии выдержать подобные стрессы, хотя без потерь не обошлось. Между прочим, я сам носился все 5 лет МГУ с реформой образования, но, окончив его, потерял к этим реформам интерес :) .
А научными проблемами мехматовцы занимаются с первых дней обучения, я уже приводил на эту тему примеры. Я сам каждую неделю отчитывался перед своим научным руководителем по поводу своих курсовых и диплома с целью показать, а что я такого наваял за эту неделю из того, чего еще не знала математика? Могу даже похвастаться, что помог одной студентке защитить диплом, дав ей свою курсовую на ее дипломный проект, а также помог с адаптацией.

студентик*громкие аплодисменты* Золотые слова. Корень всех проблем. Даже сойдемся на том, что люди везде примерно одинаково способные, только нужны достаточные вложения(финансирование, организация, мотивация и пр.) Вложите сумму денег и любой захудалый городок в превратится в всемирный научный центр.
Верно, мы живем в политизированном мире, корни которого теряются во времени происхождения различных видов людей, но это отдельный разговор.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187362
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикМои эмоции, только говорят о том, что с вами интересно дисскутировать:)
Опять же не понимаю, почему Кнут не годится в учебники? Годится, но для мехматовцев МГУ, или
людей, которые знают математику и у них есть время для его штудирования. Алгоритмы Кнута фундамениальны, они лишь основа основ. Есть куча алгоримов, которые не основные, а узкоспециализированы, например алгоритмы сжатия, компьютерной графики. Изучают их люди уже по другим источникам.
Я-бы (сегодня) не рекомендовал старину Дональда в качестве учебника. Уж слишком он любит растекаться мыслью по древу. Если вы хотите быстро и эффективно освоить алгоритмы то стартовой точкой лучше взять Вирта, а потом можно практиковаться и (одновременно) расширять знания с такими практиками как Зубов, Шевченко и тот-же Седжевик (с примерами на Delhi/C/С++).
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187400
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикСтрого доказано, что любой алгоритм можно реализовать с помощью 3 структур ЯВУ: циклы, линейность выполнения(пошаговое выполнение программы) и ветвление. break оставлен для сравнительно редких случаев, когда его использование оправдано, значительно сокращается размер текста программы или др. В ассемблере нет циклов, ветвлений как таковых, а есть только условные и безусловные переходы, но стоит отметить что асм это не ЯВУ.
Да, но любая «структура ЯВУ» компилируется в инструкции ЯНУ (языка низкого уровня, то бишь ассемблера). И там операторы перехода – фундаментальны, т.е. не заменяемы другими операторами. А break вполне типичный оператор для switch / case / default в С/С++ и я не представляю как досрочно выходить из циклов без break, может подскажите? A goto не рекомендуется по другой причине, из-за того, что компилятор не может оптимизировать код с goto. Так что не ЯВУ делает погоду, а ЯНУ (ассемблер).

Насчет циклов в асме. Есть, например инструкции типа LOOP, LOOPE, LOOPZ, LOOPNE, LOOPNZ, которые работают как циклы. Вот пример

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
; вычисление суммы чисел, входящих в массив   
lea       ESI, iarray          ; адрес первого элемента массива а ESI
mov       ECX, len_iArray     ; размер массива а ECX
next:
mov       AX, word ptr [ESI]                                         
add       word ptr isum, AX   ; сумма младших  16 -ти разрядов  
mov       AX, word ptr [ESI+ 2 ]
adc       word ptr isum+ 2 , AX ; сумма старших  16 -ти разрядов 
add       ESI,  4               ; адрес следующего элемент массива
loop      next                    
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187409
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикНу если мы о математиках, то уж им то тчно не светит Нобелевка по определению. А премия Филдса пожалуйста, наш соотечественник Перельман Г. И. вполне состоятельный пример. То бишь лопату( ручку, калькулятор, ...) в руки и вперед покорять горизонты науки. И не сваливать все на ужасную и жестокую политику.
Математикам Нобелевка действительно не светит по определению, но по другой причине, Нобель не любил математиков, так как его жена имела любовником математика, потому и не указал их в своем завещании относительно своей премии :) .

А Перельман отказался от премии, не понял, правда его причин.

«Покорять горизонты науки» никто не против, только это занятие не для дилетанта, а для профессионала. Профессионализм означает получать деньги за свою работу. К сожалению, наука у нас не финансируется должным образом, тем более в провинции, так что ею можно заниматься только любительски, но и результаты будут любительскими :) .
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187430
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EmeryЯ тоже не понимаю, почему для вас Кнут – «священная корова»? Для меня он один из классиков базовых компьютерных алгоритмов. Я же не министерство образования, высказал только свое мнение, не хотите не соглашайтесь, используйте Кнута, хоть вместо букваря в школе, мне по большому счету ульрафиолетово :) . Если он кому помог в профессиональной работе, я бы с удовольствием прочитал про это. Лично мне толку от Кнута было немного, грубо говоря. Я искал лучший алгоритм внешней сортировки у него, не нашел. Может быть вы мне назовете таковой из его 3-го тома?
Я тоже не понимаю, почему вы считаете, что он для меня священен? Я лишь считаю его одним из образцов в академических книгах, причем не исключая, что есть более лучшие авторы и произведения. Я думаю, если использовать его в школе, то дети точно не увидят светлого будущего и многие из них будут навсегда потеряны. А если серьезно, я был бы не против его преподавания в высшем образовании.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187447
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EmeryстудентикСтрого доказано, что любой алгоритм можно реализовать с помощью 3 структур ЯВУ: циклы, линейность выполнения(пошаговое выполнение программы) и ветвление. break оставлен для сравнительно редких случаев, когда его использование оправдано, значительно сокращается размер текста программы или др. В ассемблере нет циклов, ветвлений как таковых, а есть только условные и безусловные переходы, но стоит отметить что асм это не ЯВУ.
Да, но любая «структура ЯВУ» компилируется в инструкции ЯНУ (языка низкого уровня, то бишь ассемблера). И там операторы перехода – фундаментальны, т.е. не заменяемы другими операторами. А break вполне типичный оператор для switch / case / default в С/С++ и я не представляю как досрочно выходить из циклов без break, может подскажите? A goto не рекомендуется по другой причине, из-за того, что компилятор не может оптимизировать код с goto. Так что не ЯВУ делает погоду, а ЯНУ (ассемблер).
1
goto не рекомендуется по причине нечитабельности труднопонимаемости кода
2
условие про ЯВУ у Студентика не обоснованное ограничение в утверждении:
просто достаточно трех упомянутых структур, чтобы записать любой алгоритм.
3
Условный переход и есть ветвление.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187462
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Emery
А break вполне типичный оператор для switch / case / default в С/С++ и я не представляю как досрочно выходить из циклов без break, может подскажите?
Конечно подскажу. Если из цикла предусматривается неопределяемый изначально выход, то цикл не является циклом с заранее изветным количеством повторений(типичный for), а поэтому следует использовать циклы с заранее неизвестным числом повторений(while do ...; do ... while), где и определять доп. условия выхода из цикла. Конечно замечу бывают ситуации, когда условие
выполнено где- нибудь в середине цикла, а остальная часть не должна выполняться, в тех случаях нужно пересмотреть логику цикла, либо добавить ветвления(if then). Ну а если случай запущенный и само переделывание логики к примеру громоздко, нежелательно, то тогда использовать break( goto на след инстр. после цикла).
Emery
A goto не рекомендуется по другой причине, из-за того, что компилятор не может оптимизировать код с goto.
Согласен с этим. Безусловный переход функционально мощнее break(частный случай goto), а поэтому более затруднителен в оптимизации. Хотя насколько мне известно, причина отказа от goto, как раз заключалась в затруднении понимания логики текстов с его обильным использованием. Правда, если вы грамотный программист, я думаю вы и с goto будете писать нормальные программы, главное им не злоупотреблять.
Emery
Так что не ЯВУ делает погоду, а ЯНУ (ассемблер).

Для меня вообще ассемблер есть "альфа и омега". Но я так же понимаю, что его использование в кодировании серьезных программ затруднительно и трудоемко.

Emery
Насчет циклов в асме. Есть, например инструкции типа LOOP, LOOPE, LOOPZ, LOOPNE, LOOPNZ, которые работают как циклы. Вот пример

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
; вычисление суммы чисел, входящих в массив   
lea       ESI, iarray          ; адрес первого элемента массива а ESI
mov       ECX, len_iArray     ; размер массива а ECX
next:
mov       AX, word ptr [ESI]                                         
add       word ptr isum, AX   ; сумма младших  16 -ти разрядов  
mov       AX, word ptr [ESI+ 2 ]
adc       word ptr isum+ 2 , AX ; сумма старших  16 -ти разрядов 
add       ESI,  4               ; адрес следующего элемент массива
loop      next                    


По сути loop это тот же условный переход, который в отличии от остальных проверяет не флаги процессора, а регистр ECX на равенство 0. С помощью проверки условия и условного перехода можно построить любой цикл. Кстати, если не ошибаюсь(я не знаток Ассемблера), использование loop уже не выгодно бо быстродействию, так как проверка флага нуля более выгодна чем проверка регистра на 0.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187464
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В современных процессорах типа P6 при выполнении линейного машинного кода используется механизм конвейера (а точнее нескольких конвееров). Суть его работы в том что при правильной организации кода выборка машинных команд идёт параллельно и независимо с процессом их исполнения. Однако этот механизм легко ушатать добавлением jump -ов. При этом происходит сброс конвейера и как следствие несколько десятков тактов таймаутов. Специально для этого в архитектуру Pentium был введён блок предсказания переходов . Однако эффективность его правильного прогноза составляет около 80%. Поэтому в качестве хорошей машинной оптимизации можно предложить отказ от использования оператора перехода там, где это технически осуществимо.

Вообще, дискуссии на тему goto считаю вредными. Это, знаете-ли как в приличном обществе математиков - толковать о решении квадратных уравнений. Заплюют...

С уважением.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187505
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingiz
goto не рекомендуется по причине нечитабельности труднопонимаемости кода

поначалу не рекомендовалось по причине нечитабельности и труднопонимаемости кода,
а потом еще нашлось 17 причин, чтобы его избегать.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187522
Гыы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикEmery
Ну, выход всегда есть если вам что-то не нравиться, садитесь и ваяете собственный шедевр. Лично я, сколько учился, никогда не воспринимал никакую информацию, как «последнее слово» в науке или образовании. И нет правил без исключения. Да, лично я не практикую «goto», но не потому, что это плохо в принципе (для меня не факт), а просто потому, что есть его вполне приемлемые эквиваленты (exit, break). В ассемблере, например, операции типа j** и jmp, (условные и безусловные переходы) встречаются как «с добрым утром». Если мне не нравиться одна книга, я просто ищу другую, благо выбор в эпоху Интернета вполне достаточен.

Строго доказано, что любой алгоритм можно реализовать с помощью 3 структур ЯВУ: циклы, линейность выполнения(пошаговое выполнение программы) и ветвление. break оставлен для сравнительно редких случаев, когда его использование оправдано, значительно сокращается размер текста программы или др. В ассемблере нет циклов, ветвлений как таковых, а есть только условные и безусловные переходы, но стоит отметить что асм это не ЯВУ.

Строго доказано, что любой алгоритм можно реализовать с помощью функций: тождественного нуля, инкремента, выбора аргумента, оператора выбора и оператора примитивной рекурсии.

Строго доказано, что любой алгоритм можно реализовать с помощью лямбда исчисления.

Строго доказано, что любой алгоритм можно реализовать с помощью нормальных алгоритмов Маркова.

Строго доказано, что любой алгоритм можно реализовать с помощью машины Тьюринга, наконец.

Собственно таких базисов вычислимости может быть много, так что это не показатель.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187523
Гыы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
* "оператор выбора" читать как "оператор подстановки"
** лямбда исчисление, конечно же, Черча
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187570
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гыы,
я извиняюсь, но помоему,
это строго постулируется, а не строго доказано.
Слово алгоритм не формализовано, а все что у Вас справа - это формальные термины.
Они все одинаковые, именно это строго доказано.
(в смысле, что можно написать на одном, то можно написать на любом другом).
А собственно слово алгорим решили считать синонимом пока не обнаружется
нечто, что можно расценивать как алгоритм и нельзя записать в виде рекурсивных фукнций.
Тогда думать дальше.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187639
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Emeryи подписалась иероглифами на катакане.


OffLop: катакана это слоговая азбука, не иероглифы (это так, на будущее)
[для такого дела могла и кандзи подобрать ;P]
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187738
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикКонечно подскажу. Если из цикла предусматривается неопределяемый изначально выход, то цикл не является циклом с заранее изветным количеством повторений(типичный for), а поэтому следует использовать циклы с заранее неизвестным числом повторений(while do ...; do ... while), где и определять доп. условия выхода из цикла. Конечно замечу бывают ситуации, когда условие
выполнено где- нибудь в середине цикла, а остальная часть не должна выполняться, в тех случаях нужно пересмотреть логику цикла, либо добавить ветвления(if then). Ну а если случай запущенный и само переделывание логики к примеру громоздко, нежелательно, то тогда использовать break( goto на след инстр. после цикла).
Вот кусок кода на VFP из моего демонстрационного алгоритма сортировки естественным слиянием:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
q1 =  0 
FOR j =  0  TO  31 
  IF INT(K/ 2 ^j)% 2  ==  1 
    q1 = j
    EXIT 
  ENDIF
ENDFOR
Как его можно еще оптимально записать без EXIT ? Думаю, что никак, разве что тупо выполнить весь цикл. В ассемблере можно было бы для LOOP принудительно обнулить регистр ECX .

студентикДля меня вообще ассемблер есть "альфа и омега". Но я так же понимаю, что его использование в кодировании серьезных программ затруднительно и трудоемко.
Представьте, что Майкрософт отменил поддержку ассемблера в своей Визуал Студии. Как вы думаете, как быстро кодировщики «серьезных программ» заметят это и помянут MS «незлым тихим словом»? На самом деле «не так страшен чёрт, как его малюют». Есть макро ассемблер, на котором программировать одно удовольствие. Хотя понятно, что для «грубого» программирования с использованием библиотек поддержки вполне хорош и ЯВУ.

студентикПо сути loop это тот же условный переход, который в отличии от остальных проверяет не флаги процессора, а регистр ECX на равенство 0. С помощью проверки условия и условного перехода можно построить любой цикл. Кстати, если не ошибаюсь(я не знаток Ассемблера), использование loop уже не выгодно бо быстродействию, так как проверка флага нуля более выгодна чем проверка регистра на 0.
Конечно, LOOP можно заменить некой эквивалентной последовательностью инструкций, как, скажем, вместо CALL использовать PUSH и JMP . В этом смысле ассемблер избыточный язык. Быстродействие на уровне выбора инструкций ассемблера не принципиальный вопрос, куда больше имеет значение компактность кода и его «читабельность».
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187775
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Emeryи подписалась иероглифами на катакане.


OffLop: катакана это слоговая азбука, не иероглифы (это так, на будущее)
[для такого дела могла и кандзи подобрать ;P]
{jhjij
Хирагана и катакана вместе составляют систему каны, в которой один символ выражает одну мору :) .
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187895
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EmeryGluk (Kazan)Emeryи подписалась иероглифами на катакане.


OffLop: катакана это слоговая азбука, не иероглифы (это так, на будущее)
[для такого дела могла и кандзи подобрать ;P]
{jhjij
Хирагана и катакана вместе составляют систему каны, в которой один символ выражает одну мору :) .

а я что сказал ? (кстати, в вике и дурак посмотреть могет, хоть бы слова переставил )
просто немножко коробит, когда каны называют иероглифами. Иероглифы это кандзи
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36188092
Гыы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingizГыы,
я извиняюсь, но помоему,
это строго постулируется, а не строго доказано.
Слово алгоритм не формализовано, а все что у Вас справа - это формальные термины.
Они все одинаковые, именно это строго доказано.
(в смысле, что можно написать на одном, то можно написать на любом другом).
А собственно слово алгорим решили считать синонимом пока не обнаружется
нечто, что можно расценивать как алгоритм и нельзя записать в виде рекурсивных фукнций.
Тогда думать дальше.

Придираешься к словам. Строго доказано, что все эти системы образуют класс вычислимых функций, которые могут быть реализованы на исполнителе машин Тьюринга. А функция называется алгоритмически разрешимой, если она вычислима. Так что все строго.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36188531
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)EmeryGluk (Kazan)Emeryи подписалась иероглифами на катакане.

OffLop: катакана это слоговая азбука, не иероглифы (это так, на будущее)
[для такого дела могла и кандзи подобрать ;P]
Хирагана и катакана вместе составляют систему каны, в которой один символ выражает одну мору :) .

а я что сказал ? (кстати, в вике и дурак посмотреть могет, хоть бы слова переставил )
просто немножко коробит, когда каны называют иероглифами. Иероглифы это кандзи
Ну ладно, один плюс в вашу пользу, я просто повторил, что она мне сказала, а с виду это действительно были иероглифы. По этому делу даже купил японо-русский словарь, до перевода руки так и не дошли :) .
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36188591
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Emery
Ну ладно, один плюс в вашу пользу, я просто повторил, что она мне сказала, а с виду это действительно были иероглифы. По этому делу даже купил японо-русский словарь, до перевода руки так и не дошли :) .

Да не надо мне никаких плюсов. Вообще странно что ты так болезненно на это реагируешь, знать все невозможно, просто я в отличии от тебя интересуюсь японским (так уж вышло), действительно слух коробит да и неудобно может получиться.

А переводить там особо нечего, это просто переклад звучания на слоговую азбуку (с учетом того, что 'л' нет, звучит экзотически). Гораздо интереснее, когда для имени действительно подбирают иероглифы (по смыслу или по звучанию), это как бы престижнее ;) Но видимо твоя знакомая не стала париться, дело это не простое, да и положено всех гайдзинов катаканой писать, хоть тресни :)

Конец OffTop-а

Модератор:
спасибо
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36189605
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Emery
Вот кусок кода на VFP из моего демонстрационного алгоритма сортировки естественным слиянием:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
q1 =  0 
FOR j =  0  TO  31 
  IF INT(K/ 2 ^j)% 2  ==  1 
    q1 = j
    EXIT 
  ENDIF
ENDFOR
Как его можно еще оптимально записать без EXIT ? Думаю, что никак, разве что тупо выполнить весь цикл. В ассемблере можно было бы для LOOP принудительно обнулить регистр ECX .

Ну выход тривиален, только не знаю понравиться ли он вам. Следую из определения цикла for - цикл с заранее известным количеством повторений, мы видим нестыковку - количество действий неопределено, тогда можем использовать цикл с предусловием, т.е.

Код: plaintext
1.
2.
3.
4.
5.
q1 =  0 ;
j =  0 ;
while ((q1 ==  0 ) && (j <=  31 )) {
  if (INT(K/ 2 ^j)% 2  ==  1 )   q1 = j;
  ++j;
}

а можно и так:
Код: plaintext
1.
2.
3.
4.
5.
6.
q1 =  0 ;
j =  0 ;
do {
  if (INT(K/ 2 ^j)% 2  ==  1 )   q1 = j;
  ++j;
while ((q1 ==  0 ) && (j <=  31 )) 
}
Emery
Представьте, что Майкрософт отменил поддержку ассемблера в своей Визуал Студии. Как вы думаете, как быстро кодировщики «серьезных программ» заметят это и помянут MS «незлым тихим словом»? На самом деле «не так страшен чёрт, как его малюют». Есть макро ассемблер, на котором программировать одно удовольствие. Хотя понятно, что для «грубого» программирования с использованием библиотек поддержки вполне хорош и ЯВУ.
Вообще этот вопрос в моем понимани заслуживает отдельной темы. А если коротко, то я считаю, что майкрософт стремиться свести все программирование в будущем под одну легконтролируемую технологию(.Net).
Emery
Конечно, LOOP можно заменить некой эквивалентной последовательностью инструкций, как, скажем, вместо CALL использовать PUSH и JMP . В этом смысле ассемблер избыточный язык. Быстродействие на уровне выбора инструкций ассемблера не принципиальный вопрос, куда больше имеет значение компактность кода и его «читабельность».
Я имел ввиду, что команда Loop избыточна и является пережитком времени. Дизассемблируйте код, сгенерированный современными компиляторами - вы его врядли встретите.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36189728
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикНу выход тривиален, только не знаю понравиться ли он вам. Следую из определения цикла for - цикл с заранее известным количеством повторений, мы видим нестыковку - количество действий неопределено, тогда можем использовать цикл с предусловием, т.е.

Код: plaintext
1.
2.
3.
4.
5.
q1 =  0 ;
j =  0 ;
while ((q1 ==  0 ) && (j <=  31 )) {
  if (INT(K/ 2 ^j)% 2  ==  1 )   q1 = j;
  ++j;
}

а можно и так:
Код: plaintext
1.
2.
3.
4.
5.
6.
q1 =  0 ;
j =  0 ;
do {
  if (INT(K/ 2 ^j)% 2  ==  1 )   q1 = j;
  ++j;
while ((q1 ==  0 ) && (j <=  31 )) 
}

Хорошо, убедили. Идею я понял. Только на Си можно пойти еще дальше в оптимизации, например,
Код: plaintext
1.
2.
3.
j =  0 ;
while (INT(K/ 2 ^j++)% 2  ==  0 ) ;  // K >  0 
q1 = j –  1 ;
И это не предел, но там уже нюансы используемого алгоритма.

студентикВообще этот вопрос в моем понимани заслуживает отдельной темы. А если коротко, то я считаю, что майкрософт стремиться свести все программирование в будущем под одну легконтролируемую технологию(.Net).
Может быть, но .NET мне пока не интересен.

студентикЯ имел ввиду, что команда Loop избыточна и является пережитком времени. Дизассемблируйте код, сгенерированный современными компиляторами - вы его врядли встретите.
Ладно, пусть так, спор то шел не об этом, а том есть циклы в асме или нет. Но, в общем, все это не принципиально.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36189764
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Emery
Хорошо, убедили. Идею я понял. Только на Си можно пойти еще дальше в оптимизации, например,
Код: plaintext
1.
2.
3.
j =  0 ;
while (INT(K/ 2 ^j++)% 2  ==  0 ) ;  // K >  0 
q1 = j –  1 ;
И это не предел, но там уже нюансы используемого алгоритма.

Вообще мы только что рассмотрели 2 точки зрения построения алгоритмов: break, continue - усложнеии логики, увеличение быстродействия и не использование этих операторов - обратный результат.

Emery
студентикЯ имел ввиду, что команда Loop избыточна и является пережитком времени. Дизассемблируйте код, сгенерированный современными компиляторами - вы его врядли встретите.
Ладно, пусть так, спор то шел не об этом, а том есть циклы в асме или нет. Но, в общем, все это не принципиально.
Я имел в виду, что команда псевдоциклическая, т.е обыкновенный условный переход.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36412438
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EmeryEmeryЧто до алгоритмов, то например я уже несколько дней вожусь с одним нелинейным алгоритмом сортировки на базе natural merge sort . Так вот «линейные» реализации этого алгоритма получены достаточно легко и просто и работают без проблем. А «нелинейная» реализация, при кажущейся простоте, реализована пока только на 99%. А последний процент меня уже измотал :) .
Ну вот, стоило объявить во всеуслышание о проблеме «последнего процента» и он успешно достигнут! Почти мистика :) . Так что свой нелинейный алгоритм natural merge sort я реализовал полностью, на 100%. Можно идти дальше :) .

А вот "Реализация на С++ внешней сортировки «естественным слиянием» (Natural Merge Sort)"
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36412500
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Emery,

3 одинаковых сообщения со ссылкой на свой топик. Забанить за спам?
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36412510
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Погоди, не бань. Дай хоть почитать чего там про сортировки...
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36412514
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
maytonПогоди, не бань. Дай хоть почитать чего там про сортировки... я не баню. я просто предупредил.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36412559
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNoseEmery,

3 одинаковых сообщения со ссылкой на свой топик. Забанить за спам?
Я же не абстрактно пулял свои ссылки, а только в те места, где ранее шла речь о реализации сортировки Natural Merge Sort на Visual FoxPro и моем желании в будущем реализовать ее на Си. Так вот на С++ она уже реализована, и я просто информировал людей об этом :) . А в рекламе своего топика я особого смысла не вижу, он не коммерческий, отвечают на мои статьи по C++ & MFC вяло. Если бы мне была нужна особая реклама, то я бы написал бы какой-нибудь аналог своей предыдущей статьи «Альтернатива SQL запросам» :) . Однако реклама как таковая мне не интересна :) .
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36412572
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Emery,

ок. Но больше так не делай.
Трёх раз вполне достаточно.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36412660
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNoseEmery,

ок. Но больше так не делай.
Трёх раз вполне достаточно.
Хорошо! Больше не буду.
...
Рейтинг: 0 / 0
108 сообщений из 108, показаны все 5 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Нужны ли в работе алгоритмы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]