Здравствуйте, Mamut, Вы писали:
PD>>Почему не говорят, именно говорят. Я же сказал — одна омская газета этим занимается, привлекает экспертов и печатает их заключения. Можно считать, что они рекомендуют продукты, занявшие 1-2 место (обычно их рассматривается 5-6) и наоборот, не рекомендуют аутсайдеров. Я к их мнению прислушиваюсь, к примеру.
M>Теперь перечитай то, что я процитировал. Это то же самое. В итоге все упирается в выбор пользователя/заказчика и т.п.
Все это слова. Я привел реальный пример, когда именно мнение специалиста и только оно может быть определяющим.
PD>>Так что нет здесь никакой сферовакуумности. Есть вполне конкретный пример, когда мнение специалистов о том, качественное мороженое или нет, существенно, а мое как потребителя — существенно, только если я им недоволен (вот тут да, не нравится мне это мороженое, и плевать мне на все мнения всех экспертов и производителя вместе с ними), и не существенно, если оно мне нравится. Скажу точнее — не то, чтобы вообще не существенно, но явно недостаточно, чтобы судить о его качестве.
PD>>Возрази на мой последний абзац. Только без ссылок на коней и вакуум, пожалуйста
M>Я, вообще-то, уже два раза процитировал, а ты только мои слова подтвердил. Мнение специалиста никому не нужно, пока это мнение не донесено до потребителя в стиле «у нас есть три продукта, они отличаются друг от друга по следующим критериям. Выбор за вами».
Я с этим не вполне согласен (это мнение в плане мороженого может быть очень важным для санэпидстанции, потому что продукт, например, надо срочно с продажи снимать и конечных пользователей к нему близко не подпускать), но допустим, что это так. Пусть мнение специалистов о качестве должно быть потом доведено до пользователя и он должен решать, что выбрать. Ну и что ? Это не отменяет моей посылки — судить может только специалист, пользователь потом может его выводам верить или не верить, но не судить.
M>В итоге именно потребитель определяет то, что ему нужно и то, что является хорошим продуктом для него, как потребителя.
Я не вижу аргументов. Я вижу только декларативные заявления, вроде того, что это так, потому что это так.
Хорошо, поставлю вопрс прямо.
Можно ли считать мое (именно мое, Dvokin Pavel) весьма положительное мнение о мороженом "Магнат" критерием того, что это качественный продукт ? Да или нет ? Без комментариев, просто да или нет!
With best regards
Pavel Dvorkin
Re[21]: Помогает ли Linq сделать код понятнее или быстрее?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Ох! Ну когда вы наконец поймете, что Ваш linq строит промежуточные структуры, которые вы не видите, и они занимают место. Чудес не бывает.
В общем случае можно считать, что этих структур нет. Вот для сортировки и некоторых других операций, придется выделить память равную размеру массива.
Re[6]: Помогает ли Linq сделать код понятнее или быстрее?
Здравствуйте, gandjustas, Вы писали:
G>Или хотя бы мысли где такая проверка может понадобится?
В юнит тесте алгоритма сортировки
G>>>Более вероятная задача найти монотонные подпоследовательности, как раз она на linq лучше решается. FR>>Ну это и циклом не сложно. G>linq выйграет в читабельности.
Не факт
FR>>Угу классическим qsort с самым примитивным выбором медианы
G>
Здравствуйте, FR, Вы писали:
FR>Здравствуйте, gandjustas, Вы писали:
G>>Или хотя бы мысли где такая проверка может понадобится?
FR>В юнит тесте алгоритма сортировки
Зачем? Можно просто сравнить с эталоном.
FR>Мы похоже по разному понимаем один проход. FR>Я имел в виду алгоритмическую сложность которая у сортировки существенно выше чем у линейного поиска.
Алгоритмическая сложность у нормального алгоритма быстрой сортировки такая же линейная, как у проверки на упорядоченность.
Re[22]: Помогает ли Linq сделать код понятнее или быстрее?
PD>>Ох! Ну когда вы наконец поймете, что Ваш linq строит промежуточные структуры, которые вы не видите, и они занимают место. Чудес не бывает.
I>В общем случае можно считать, что этих структур нет.
Если алгоритм позволяет обйтись без них, то и его реализации тоже могут, как бы и на чем они не были бы написаны. Если алгоритм не позволяет — язык программирования не поможет.
>Вот для сортировки и некоторых других операций, придется выделить память равную размеру массива.
Сортировка испокон веков принимается только в версии , когда дополнительная память не более O(log N).
With best regards
Pavel Dvorkin
Re[8]: Помогает ли Linq сделать код понятнее или быстрее?
Здравствуйте, gandjustas, Вы писали:
FR>>В юнит тесте алгоритма сортировки
G>Зачем? Можно просто сравнить с эталоном.
Нельзя, задолбаешся три миллиона цифр вводить
FR>>Мы похоже по разному понимаем один проход. FR>>Я имел в виду алгоритмическую сложность которая у сортировки существенно выше чем у линейного поиска. G>Алгоритмическая сложность у нормального алгоритма быстрой сортировки такая же линейная, как у проверки на упорядоченность.
Покажи мне этот алгоритм, radix не предлагай он не универсален.
PD>Можно ли считать мое (именно мое, Dvokin Pavel) весьма положительное мнение о мороженом "Магнат" критерием того, что это качественный продукт ? Да или нет ? Без комментариев, просто да или нет!
Это продукт, удовлетворяющий твоим критериям качества
Здравствуйте, FR, Вы писали:
FR>Здравствуйте, gandjustas, Вы писали:
FR>>>В юнит тесте алгоритма сортировки
G>>Зачем? Можно просто сравнить с эталоном.
FR>Нельзя, задолбаешся три миллиона цифр вводить
А зачем тебе столько?
Главное проверить общий случай (один) и corner cases.
FR>>>Мы похоже по разному понимаем один проход. FR>>>Я имел в виду алгоритмическую сложность которая у сортировки существенно выше чем у линейного поиска. G>>Алгоритмическая сложность у нормального алгоритма быстрой сортировки такая же линейная, как у проверки на упорядоченность.
FR>Покажи мне этот алгоритм, radix не предлагай он не универсален.
PD>>Можно ли считать мое (именно мое, Dvokin Pavel) весьма положительное мнение о мороженом "Магнат" критерием того, что это качественный продукт ? Да или нет ? Без комментариев, просто да или нет!
M>Это продукт, удовлетворяющий твоим критериям качества
PD>>>Можно ли считать мое (именно мое, Dvokin Pavel) весьма положительное мнение о мороженом "Магнат" критерием того, что это качественный продукт ? Да или нет ? Без комментариев, просто да или нет!
M>>Это продукт, удовлетворяющий твоим критериям качества
PD>Так и всякой дряни наглотаться можно
Можно конечно Но если эта дрянь удовлетворяет мои потребности, это как бы мои проблемы
Здравствуйте, gandjustas, Вы писали:
G>Здравствуйте, FR, Вы писали:
FR>>Здравствуйте, gandjustas, Вы писали:
FR>>>>В юнит тесте алгоритма сортировки
G>>>Зачем? Можно просто сравнить с эталоном.
FR>>Нельзя, задолбаешся три миллиона цифр вводить
G>А зачем тебе столько?
G>Главное проверить общий случай (один) и corner cases.
FR>>>>Мы похоже по разному понимаем один проход. FR>>>>Я имел в виду алгоритмическую сложность которая у сортировки существенно выше чем у линейного поиска. G>>>Алгоритмическая сложность у нормального алгоритма быстрой сортировки такая же линейная, как у проверки на упорядоченность.
FR>>Покажи мне этот алгоритм, radix не предлагай он не универсален.
G>http://algolist.manual.ru/sort/quick_sort.php
G>При выборе опорным элементом центральный элемент будет ровно один проход.
Че-то я туплю сегодня, все равно будут рекурсивыне вызовы.
Здравствуйте, Mamut, Вы писали:
PD>>Так и всякой дряни наглотаться можно
M>Можно конечно Но если эта дрянь удовлетворяет мои потребности, это как бы мои проблемы
Именно так. Не разобравшись с качеством продукта и не выслушав мнения специалистов я создам себе проблемы, которые потом решать будут медики.
PD>>>Так и всякой дряни наглотаться можно
M>>Можно конечно Но если эта дрянь удовлетворяет мои потребности, это как бы мои проблемы
PD>Именно так. Не разобравшись с качеством продукта и не выслушав мнения специалистов я создам себе проблемы, которые потом решать будут медики.
Нас на самом деле занесло немного в ту степь (что всегда происходит с аналогиями).
Программа, выполняющая требования заказчика, — это, как минимум, мороженное, которое проходит по медицинским показателям. Технические моменты вроде замены сортировки пузырьком на merge sort соответствуют замене обезжиренного молока в мороженном на полноценные сливки, например
Почему? Потому что заказчик говорит: я хочу, чтобы программа соответствовала требованиям А, Б, В. Если программа им соответствует — прекрасно, и никакие внутренние, технические проблемы программы (вроде сортировки пузырьком) не приведут к проблемам, требующих медиков (она не напишет -1000000 там, где должно стоять +10).
У нас в соседнем офисе ребята работают на крупную западную компанию, что-то там продающую по интернету. Их бухгалтерия сидела на какой-то майкрософтовской фигне и горя не чаяла. Эта система не потеряла ни цента денег за 4 или 5 лет работы.
Но тут пришли мы И нам сказали, что хорошо бы бухгалтерию объединить с сайтом и отказаться от старой программы, потому что она не устраивает по некоторым критериям (в частности, там не было каких-то отчетов). Ну и перенести старые данные в новую систему.
«Ага», сказали программисты и полезли в базу данных.
«$*&^%$#$%^&*()(*&^%$#@!@#$%^&*()_)(*&^%$#W@#$%^&*()_)(*&^%$», сказали программисты, увидев базу данных, которая состояла из таблиц с названиями типа D00089 и полями, названными не менее информативно.
Но ладно, разобрались
В новой системе — все что надо, MVC, OOP, декомпозиция данных, информативные таблицы, триггеры, хранимые процедуры, отчеты на любой вкус... Но два раза система потеряла по десятку тысяч долларов (баг найден и устранен)...
Теперь внимание, вопрос — какая система лучше?
Специалист (сферовакуумный?) скажет, что, безусловно, вторая система. Она и написана грамотно, и отчеты генерятся за 10-45 секунд против 2 часов в прежней системе и т.п.
А бухгалтерия скажет: «идите туда, где солнце не светит», потому что фирма потеряла почти 20 000 баксов, а отчеты нам нужны раз в месяц, можно и подождать 2 часа.
И будет права бухглтерия, а не специалист. Потому что в итоге решает заказчик. А для заказчика единственным критерием качества программы является то, как она обрабатывает его, заказчика, данные.
FR>>Покажи мне этот алгоритм, radix не предлагай он не универсален.
G>http://algolist.manual.ru/sort/quick_sort.php
G>При выборе опорным элементом центральный элемент будет ровно один проход.
Один проход будет не учитывая рекурсию, потом в каждой ветке повторные проходы.
В лучшем случае получим n * (ln n) проходов, что уже даже не считая затраты времени на обмены
в разы медленнее линейного поиска (у которого в среднем n / 2 прохода), в худшем же случае будет
n ^ 2 проходов.
Здравствуйте, Mamut, Вы писали:
M>Нас на самом деле занесло немного в ту степь (что всегда происходит с аналогиями).
Тогда вопрос — почему в той степи иные все же (ну согласись же ) законы ? И таких степей очень много, практически все. Помнишь, я про мост писал — та же степь. Про банк — та же. Что-то тут не так...
M>Программа, выполняющая требования заказчика, — это, как минимум, мороженное, которое проходит по медицинским показателям.
Я и в этом на 100% не уверен. А вдруг он просто не столкнулся с редко проявляющимся багом, который исправить крайне сложно, так как ошибка заложена в архитектуру ? А проявляется он раз в пару лет... Жили, не тужили, радовались, а однажды с ним столкнулись — и теперь ни бе ни ме ни кукареку...
>Технические моменты вроде замены сортировки пузырьком на merge sort соответствуют замене обезжиренного молока в мороженном на полноценные сливки, например
Хорошо как на сливки, а ну как заменили на обрат ?
M>Почему? Потому что заказчик говорит: я хочу, чтобы программа соответствовала требованиям А, Б, В. Если программа им соответствует — прекрасно, и никакие внутренние, технические проблемы программы (вроде сортировки пузырьком) не приведут к проблемам, требующих медиков (она не напишет -1000000 там, где должно стоять +10).
См. выше.
< пример skipped>
M>Специалист (сферовакуумный?) скажет, что, безусловно, вторая система. Она и написана грамотно, и отчеты генерятся за 10-45 секунд против 2 часов в прежней системе и т.п.
M>А бухгалтерия скажет: «идите туда, где солнце не светит», потому что фирма потеряла почти 20 000 баксов, а отчеты нам нужны раз в месяц, можно и подождать 2 часа.
M>И будет права бухглтерия, а не специалист. Потому что в итоге решает заказчик. А для заказчика единственным критерием качества программы является то, как она обрабатывает его, заказчика, данные.
Черт его знает. Что-то в этом есть. Но принять не могу. Вот представь себе. Были у фирмы данные размером в N, и некий алгоритм прекрасно работал. Год, два, три. А потом фирма вдруг резко выросла и размер данных стал 10N. И стало все совсем нехорошо. А специалисты свое "фи" сказали бы раньше — мол, пока у вас N, 2N, 3N — все будет нормально, а потом наплачетесь. И это не пузырек, который можно и заменить. Вы, господа разработчики, положили в основу совсем неподходящую модель, а она центральное место в вашей задаче, поэтому надо было с самого начала искать тут решение NlogN, а не уповать, что N^2 сойдет.
PD>Тогда вопрос — почему в той степи иные все же (ну согласись же ) законы ? И таких степей очень много, практически все. Помнишь, я про мост писал — та же степь. Про банк — та же. Что-то тут не так...
Ну, просто области все же разные Мороженное — это не программа, а программа — не мороженое И даже среди программ бывают разные От допущения «плюс-минус 5% нам нестрашно» до «плюс-минус 5% — это ядерный армагеддон»
M>>Программа, выполняющая требования заказчика, — это, как минимум, мороженное, которое проходит по медицинским показателям.
PD>Я и в этом на 100% не уверен. А вдруг он просто не столкнулся с редко проявляющимся багом, который исправить крайне сложно, так как ошибка заложена в архитектуру ? А проявляется он раз в пару лет... Жили, не тужили, радовались, а однажды с ним столкнулись — и теперь ни бе ни ме ни кукареку...
Такую ошибку и специалисты не выявят А может и выявят Неизвестно
>>Технические моменты вроде замены сортировки пузырьком на merge sort соответствуют замене обезжиренного молока в мороженном на полноценные сливки, например
PD>Хорошо как на сливки, а ну как заменили на обрат ?
Это как если программа, которая работала 5 секунд, стала работать 15 секунд на тех же данных
M>>Специалист (сферовакуумный?) скажет, что, безусловно, вторая система. Она и написана грамотно, и отчеты генерятся за 10-45 секунд против 2 часов в прежней системе и т.п.
M>>А бухгалтерия скажет: «идите туда, где солнце не светит», потому что фирма потеряла почти 20 000 баксов, а отчеты нам нужны раз в месяц, можно и подождать 2 часа.
M>>И будет права бухглтерия, а не специалист. Потому что в итоге решает заказчик. А для заказчика единственным критерием качества программы является то, как она обрабатывает его, заказчика, данные.
PD>Черт его знает. Что-то в этом есть. Но принять не могу. Вот представь себе. Были у фирмы данные размером в N, и некий алгоритм прекрасно работал. Год, два, три. А потом фирма вдруг резко выросла и размер данных стал 10N. И стало все совсем нехорошо. А специалисты свое "фи" сказали бы раньше — мол, пока у вас N, 2N, 3N — все будет нормально, а потом наплачетесь. И это не пузырек, который можно и заменить. Вы, господа разработчики, положили в основу совсем неподходящую модель, а она центральное место в вашей задаче, поэтому надо было с самого начала искать тут решение NlogN, а не уповать, что N^2 сойдет.
А вот не надо преждевременно оптимизировать и закладываться на «вдруг» С такими «вдруг» не может никто справиться, если только требования такого не было изначально заложено в систему.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Хорошо, поставлю вопрс прямо. PD>Можно ли считать мое (именно мое, Dvokin Pavel) весьма положительное мнение о мороженом "Магнат" критерием того, что это качественный продукт ? Да или нет ? Без комментариев, просто да или нет!
Но я надеюсь, что и ты сможешь ответить — перестал ли ты избивать студентов на своих занятиях? Без комментариев, просто да или нет!
Мучает меня, правда, вопрос, будешь ли ты покупать мороженное "Магнат", которое тебе совершенно не нравится на вкус, но которое рекомендовал Союз Мороженников РФ, или будешь ты покупать мороженное "Богдан", которое — для тебя — вкусное, по составу выглядит прилично, но на которое никто не дал рекомендаций?
(а дипломированные специалисты компании "Магнат" вообще заявили, что Богдан их мороженному в подметки не годится)
- Подгузники Памперс — единственные подгузники, рекомендованные Союзом Педиатров России!
— Союз Педиатров Росиии — единственный союз, созданный специально для рекламы подгузников Памперс!
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Re[10]: Помогает ли Linq сделать код понятнее или быстрее?
R>>тупое суммирование массива из 30,000,000 doubles.
R>>LINQ Sum: 915 ms R>>обычный цикл: 134 ms R>>C++ : 61 ms
M>Как всегда, приводятся какие-то непонятные примеры и выдаются за быстродействие Понятно же, что никому даром не нужно ни такое суммирование, ни такое решение.
в качестве оценки эффективности реализации Sum на простых запросах приведенный код (даже несмотря на неточность в выводе результатов) вполне адекватен.
M>В реальных задачах понадобится от силы пара тысяч чисел, и их суммирование на всех трех языках наверняка уместится в десяток миллисекунд, что человеческому глазу незаметно (ниже исправили код на C# и уже разрыв с обычным циклом составил не 9, а 3 раза). О чем весь сыр-бор?
вот не поветите, реальные задачи они разные бывают. И массиви на миллионы и десятки миллионов элементов совсем не редкость. Тем более что сыр-бор изначально был из-за того, что люди заменяют O(n) -> O(n*n) и не видят в этом криминала. а подобные вещи приводят к проблемам куда как быстрее.
Re[11]: Помогает ли Linq сделать код понятнее или быстрее?
Здравствуйте, FR, Вы писали:
FR>Здравствуйте, gandjustas, Вы писали:
FR>>>Покажи мне этот алгоритм, radix не предлагай он не универсален.
G>>http://algolist.manual.ru/sort/quick_sort.php
G>>При выборе опорным элементом центральный элемент будет ровно один проход.
FR>Один проход будет не учитывая рекурсию, потом в каждой ветке повторные проходы. FR>В лучшем случае получим n * (ln n) проходов, что уже даже не считая затраты времени на обмены FR>в разы медленнее линейного поиска (у которого в среднем n / 2 прохода), в худшем же случае будет FR>n ^ 2 проходов.
Ну вот я проснулся.
insertion sort дает O(n) в случае упорядоченного массива.