Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

EuroDiffusion

351
13 апреля 2005 года
PitxBull
633 / / 22.12.2004
Эту задачу в 2003 году IBM предлагала программистам кандидатам на работу. Я ее решил. Но на работу меня все равно не взяли. Предлагаю всем желающим скачать архив и оценить решение. Я не спорю код не идеален но все работает правильно.

P.S. Я вот иногда думаю мож меня на работу не берут потому что я Януковича на выборах поддерживал ? :)))
Страницы:
3
26 февраля 2007 года
Green
4.8K / / 20.01.2000
Цитата: __!PitXBull!__

из за ваших многочисленных прямых оскорблений и оскорбительных комментариев....

рассказывай свои догадки не здесь на форуме, а в на приеме у врача психиатра.

детский лепет в сочетании с математическим онанизмом.


Интересная подборка, неправда ли?

Цитата: __!PitXBull!__

кроме того , на этом форуме в этой теме существует только один алгорим решения задачи EuroDiffusion - разработанный мной , PitxBull.


... и это непревзойденно медленный из всех медленных алгоритмов и божественно глючный! Аминь! :D

Цитата: __!PitXBull!__

смех короче - га га г га - ты действительно думаешь что в этом вся сложность задачи ? га га га га


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

Остальной БРЕД (у меня слова PitxBull и БРЕД - уже синонимы) по алгоритмы комментировать не буду хотя бы потому, что не хочется выглядеть таким же идиотом.

Цитата: __!PitXBull!__

и ГЛАВНОЕ:

ближайшие пару ночей я собираюсь посветить более изящной реализации моего нового алгоритма, и по моим оценкам производительность моей проги превзойдет твою на 30-40% процентов. ведь что бы там не трындели Green с многочисленными подсирателями, 2 всегда больше чем 1. гыг. ждите. и готовтесь к харакири.


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

P.S. Я предвижу, что ты опять начнешь разводить тирады про то какой ты замечательный и гениальный, поэтому скажу сразу: мы их с удовольствием послушаем, но только когда ты представишь что-то вразумительное. А пока не сотрясай воздух по-просту, не делай из себя тупого клоуна и пустослова.
Рекомендую сменить ник с Бульки на Моську. Это будет оптимальнее... :)

284
27 февраля 2007 года
michael_is_98
587 / / 25.02.2005
А где можно загрузить эти текстовые файлы. В пакете тестирования их нет
3
27 февраля 2007 года
Green
4.8K / / 20.01.2000
Цитата: michael_is_98
А где можно загрузить эти текстовые файлы. В пакете тестирования их нет


Да, действительно нет... забыл добавить :)
Добавил, перезалил архив, можно взять там же:
http://forum.codenet.ru/showpost.php?p=174730&postcount=99

21K
27 февраля 2007 года
__!PitXBull!__
34 / / 18.02.2007
Цитата: Green
Интересная подборка, неправда ли?


... и это непревзойденно медленный из всех медленных алгоритмов и божественно глючный! Аминь! :D


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

Остальной БРЕД (у меня слова PitxBull и БРЕД - уже синонимы) по алгоритмы комментировать не буду хотя бы потому, что не хочется выглядеть таким же идиотом.


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

P.S. Я предвижу, что ты опять начнешь разводить тирады про то какой ты замечательный и гениальный, поэтому скажу сразу: мы их с удовольствием послушаем, но только когда ты представишь что-то вразумительное. А пока не сотрясай воздух по-просту, не делай из себя тупого клоуна и пустослова.
Рекомендую сменить ник с Бульки на Моську. Это будет оптимальнее... :)


флудер , плагиатор и просто врун. как видимо по существу моего поста тебе ответить нечего. как обычно.

21K
27 февраля 2007 года
__!PitXBull!__
34 / / 18.02.2007
2Green да , кроме того, если составить тестовій пример на поле 10x10 с более чем 20 странами, твоя прога выпадает с ошибкой. при этом все данные правильны, а в постановке задачи ничего не говорится об ограничении кол-ва стран, чем грешит твоя прога. надо внимательнее задание читать.
3
27 февраля 2007 года
Green
4.8K / / 20.01.2000
Цитата: __!PitXBull!__

2Green да , кроме того, если составить тестовій пример на поле 10x10 с более чем 20 странами, твоя прога выпадает с ошибкой. при этом все данные правильны, а в постановке задачи ничего не говорится об ограничении кол-ва стран, чем грешит твоя прога. надо внимательнее задание читать.


Правильно, "надо внимательнее задание читать". :D
Заставляешь меня опять тыкать тебя носом, как щенка:

Цитата:

The first line of each test case is the number of countries (1 ≤ c ≤ 20).


P.S. Я так понял, что это была попытка отомстить мне за то, что я указал на баг в твоей программе?

294
03 марта 2007 года
Plisteron
982 / / 29.08.2003
Цитата: Green
я подготовил пакет для тестирования. Вам достаточно загрузить его, распаковать и запустить test.bat.
Тест будет выполняться долго (минут пять), наберитесь терпения и для чистоты эксперемента не запускайте никаких дополнительных программ, не переключайте окна, и т.п. Хорошо бы на время отключить скрин-сейфер. Но если лень, можете этого не делать. :)


Позапускал... Сперва с дополнительными программами, потом без оных.

Код:
Платформа:
    AMD Athlon XP 3200+ (Barton),
    RAM 2Gb PC3200 (3-3-3-8 Dual Channel),
    MB Epox EP-8RDA+ nForce 2,
    HDD 120GB IDE Hitachi,
    Video nVidia GeForce 4 Ti 4600 128Mb,
    OS Windows XP SP 2 iNFR@CD 6.1
Результат работы совместно с четырьмя экземплярами архиватора WinRAR 3.41 (один с нормальным приоритетом, три с минимальным).
  Первый дубль
    18 countries:
    BioUnit - 1.437
    PitxBull - 2.234
    36 countries:
    BioUnit - 55.234
    PitxBull - 93.859
  Второй дубль
    18 countries:
    BioUnit - 1.5
    PitxBull - 2.093
    36 countries:
    BioUnit - 54.765
    PitxBull - 92.921
  Третий дубль
    18 countries:
    BioUnit - 1.515
    PitxBull - 2.031
    36 countries:
    BioUnit - 55.078
    PitxBull - 93
Результат работы совместно с четырьмя экземплярами архиватора WinRAR 3.41 (все экземпляры работают с минимальным приоритетом).
  Первый дубль
    18 countries:
    BioUnit - 1.093
    PitxBull - 1.546
    36 countries:
    BioUnit - 41.546
    PitxBull - 70.875
  Второй дубль
    18 countries:
    BioUnit - 1.109
    PitxBull - 1.546
    36 countries:
    BioUnit - 41.625
    PitxBull - 70.453
  Третий дубль
    18 countries:
    BioUnit - 1.109
    PitxBull - 1.546
    36 countries:
    BioUnit - 41.515
    PitxBull - 70.328
Результат работы без посторонних программ (все три раза дали на редкость стабильные показатели):
    18 countries:
    BioUnit - 1.109
    PitxBull - 1.546
    36 countries:
    BioUnit - 40.046
    PitxBull - 67.375
1.9K
04 марта 2007 года
lexalex
59 / / 23.12.2003
Специально сел и прочитал все 17 страниц...хмм и что-то мне это напомнило, ага:
http://lib.mexmat.ru/forum/viewtopic.php?t=131
Кому интересно, могут почитать, поржать. Симптомы у гражданина там те же и диагноз был вынесен :)
1
04 марта 2007 года
kot_
7.3K / / 20.01.2000
Статистика показывает - заболеваемость шизофренией составляет порядка 2 - 5%. Т.е. форум в принципе исключения не составляет. Показатели приведены на время 1989-97 год.
21K
14 марта 2007 года
__!PitXBull!__
34 / / 18.02.2007
"... Мерцает в тронном зале свет ... "

Эльфийская Рукопись - Магия и меч

наконец-то смог уделить пару часов сегодня ночью этой задаче

Pentium IV 2 Ghz

пример с 36 странами

PitxBull - 67 секунд
Green - 83 секунды
-----------

на всех остальніх тестах моя версия также показала большую производительность

запускается как программа Greena. EuroDiffusion.exe test_in4.txt > test_out4.txt

жду видео с вашим харакири, дауны.
3
15 марта 2007 года
Green
4.8K / / 20.01.2000
Для приличия тебе надо было бы сказать, что ты оптимизировал МОЮ программу, а не выставлять её за свою.
Само это говорит о том, что ты отказался от своей черепашки и признал, что моя программа ЛУЧШЕ.
Т.к. спор касался не оптимизации моей программы, а в правильности выбора подхода к решению задачи, можно считать, что предложенный мною подход ПОБЕДИЛ.

Кстати, что ты там говорил про плагиат?
Про твоё "преимущество именно в том что придумал другой именно алгоритм а не реализацию"?
А как же эти фразы: "существует только один алгорим решения задачи EuroDiffusion - разработанный мной , PitxBull."
"так же скажу что мой новый алгоритм ( выложенный мной последним ) является результатом развития базового алгоритма в сторону оптимизации быстродействия"

И после всех этих высказываний ты отложил в сторону свою супер-программу, взял мою последнюю версию "полной нерасширямости программы" и ПОПЫТАЛСЯ оптимизировать её. :D

Как-то неспортивно получается... :D

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

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

на всех остальніх тестах моя версия также показала большую производительность


это очередной гон.

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

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

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

3.0K
16 марта 2007 года
Мerlin
267 / / 25.07.2006
2Green

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

Во-первых, последняя программа PitxBull задачу с 18 городами на моем
компьютере решает на 13% быстрее твоей программы.

Запустил 10 раз подряд твою программу, полученное время сложил и
разделил на 10. Аналогично сделал с программой PitxBull и таким
образом получил, что на test3.txt она быстрее от твоей на 13,8%.

Чтоб так же проверить и тест с 36 городами у меня теперь времени нету,
но по 2-3 запускам могу сказать что программа PitxBull решает где-то
на 10% быстрее тест с test4.txt.

Т.е. в данный момент программа PitxBull самая быстрая минимум на трех компьютерах.

На счет того, кто чей алгоритм украл.
Согласно формулировке задачи:
1. есть касса,
2. в начале дня целая часть от деления на 1000 находящегосся в кассе суммы
отправляется соседям.

Это я бы назвал native-алгоритмом. Просто формулировка задачи
переводится в код. Думаю, что это ничей алгоритм. Он есть сам по себе.

Первым его реализовал PitxBull пару лет тому, используя контейнеры STL.

В прошлом году ты тоже написал это, тоже с исп. STL.

После этого PitxBull заменил контейнер STL, на С-ый массив.
После него ты - по мнению squirl борец за чистоту языка С++,
тоже перешел на С-й массив.

Я смотрел самую первую программу PitxBull и одну из твоих программ
(это в которой я якобы баг нашел :)). Могу сказать, ни ты ни PitxBull к
алгоритму, которая прямо следует из формулировки задачи ничего не
добавили. Макс. что ты сделал, так фокусничал с памятью и заменил
int на unsigned int.

Если уж очень нужно приписать этот алгоритм кому-то, то его можно
приписать только Pitxbull. Не потому что он его выдумал, а только потому
что он первым перевел алгоритм описанный в условии задачи в код.

На счет того, что он якобы оптимизировал твою программу.
Так ты же хотя бы 6 раз реализовал один и тот же алгоритм.
Скажи, сколько раз тебе нужно переписать один и тот же код,
чтоб ты мог сказать, что вот смотрите это работа мастера,
сюда ничего добавить или отнять не можно? Что тебе мешало,
сделать ту же оптимизацию, которую якобы проделал PitxBull?
Если не в первой, то хотя бы в пятой версии своей программы?

Судя по твоему посту ты дизассемблировал его программу, после этого
какой-то программой перевел в C и теперь идешь домой, чтоб
идеи PitxBull встроить в свою программу.

И как это будет? Кто-то что-то выдумает, и ты сразу же будешь ставить
это в свою программу (например, как делал при переходе PitxBull на массивы)
и потом будешь говорить, что это только твой алгоритм оптимизировали,
и ты при желании спокойно можешь проделать то же самое? И как долго
это будет длиться?

Если как ты предлагаешь теперь закрыть этот топик, то можно считать что
PitxBull чемпион. :)
3
16 марта 2007 года
Green
4.8K / / 20.01.2000
Обещанный в моём предыдущем посте вариант МОЕЙ программы.
Результаты:
Цитата:

18 countries:
BioUnit - 0.937
PitxBull - 1.031
36 countries:
BioUnit - 37.421
PitxBull - 40.656

3
16 марта 2007 года
Green
4.8K / / 20.01.2000
О, Мerlin!
Сколько лет, сколько зим!
Ты как всегда во время...
Твоя своевременность даже удивляет. :D

Цитата: Мerlin

На счет того, кто чей алгоритм украл.
Согласно формулировке задачи:
1. есть касса,
2. в начале дня целая часть от деления на 1000 находящегосся в кассе суммы
отправляется соседям.


Не будь так примитивен.
Так можно описать любой алгоритм:
1) получаем входные данные,
2) обрабатываем,
3) выводим ответ.

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

Я же рассматривал единую карту городов и единую карту перемещаемых порций. У меня совершенно плоское представление данных. В результате у меня вообще нет иерархических вызовов, я отказался от графа. Расчеты независимы:
шаг 1 - взяли порции от городов и поместили в массив порций (обход 2D массива);
шаг 2 - взяли порции и прибавили к городам (обход 2D массива).

Цитата: Мerlin

После этого PitxBull заменил контейнер STL, на С-ый массив.
После него ты - по мнению squirl борец за чистоту языка С++,
тоже перешел на С-й массив.


Ой, как же я мог так оступиться?!
Ты считаешь, чистота языка заключается в использовании контейнеров STL ? :)
Или ты считаешь, что основной выигрыш в скорости за счет массивов?
Если так, то ты ошибаешься дважды.

Кстати, ты всерьез считаешь, что информация о том, что контейнеры несколько медленнее массивов , известна только тебе?

Цитата: Мerlin

Я смотрел самую первую программу PitxBull и одну из твоих программ
(это в которой я якобы баг нашел ). Могу сказать, ни ты ни PitxBull к
алгоритму, которая прямо следует из формулировки задачи ничего не
добавили. Макс. что ты сделал, так фокусничал с памятью и заменил
int на unsigned int.


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

Извини, специально для тебя повторяться не буду... просто, не хочу.
Но если кого-нибудь заинтересует это различие в подходах, расскажу ещё раз.

Цитата: Мerlin

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


Может, посчитаем все попытки PitxBull до того, как он взялся за мою программу? :D

Цитата: Мerlin

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


Процесс оптимизации бесконечен, как путь к совершенству.

Цитата: Мerlin

Что тебе мешало, сделать ту же оптимизацию, которую якобы проделал PitxBull?
Если не в первой, то хотя бы в пятой версии своей программы?


Да ничего не мешало, см. пост выше.
Только это сомнительная оптимизация (см.пост ещё выше).
Поэтому эту заготовку и не выставлял до сего момента.
Скажу больше, что у меня есть заготовка и для непрямоугольного региона обсчета, но она пока не так быстра, как исходный алгоритм.
Короче, у меня есть идеи по оптимизации МОЕЙ программы. А есть ли у PitxBull идеи оптимизации ЕГО программы с кучей цепных вызовов?

Цитата: Мerlin

Судя по твоему посту ты дизассемблировал его программу, после этого
какой-то программой перевел в C и теперь идешь домой, чтоб
идеи PitxBull встроить в свою программу.


Ага, дизассемблировал. Это было не сложно, т.к. он использовал мои исходники и даже не потрудился что-либо изменить, кроме одного метода.
А прочитать код (особенно, написанный мной же и неоднократно изученный в процессе оптимизации) я могу и на ассемблере.
Что же касается использования "его идей", то можешь дизассемблировать мой код и посмотреть так ли это.
Будешь удивлен, моя концепция более стройная.
Во всяком случае, мне не пришлось обозначать моря значением -1.
Я вообще не рассматриваю моря, оперируя все теми же странами.


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

А что сделал ты (ну или вы), кроме того, как грубить и пытаться потешить своё самолюбие любыми способами, даже таким, как использование исходников оппонента?
Какую цель ты (PitxBull) преследуешь?

Цитата: Мerlin

Если как ты предлагаешь теперь закрыть этот топик, то можно считать что
PitxBull чемпион. :)


А чего "чемпион" то сам молчит, бросая в бой своих чемпионских мультиков?

3.0K
16 марта 2007 года
Мerlin
267 / / 25.07.2006
Цитата: Green
О, Мerlin!
Сколько лет, сколько зим!
Ты как всегда во время...
Твоя своевременность даже удивляет.

Почему удивляет? Я ушел с форума, но за этой веткой слежу,
так как я еще свое слово не сказал. И иногда захожу на форум для студентов.

Цитата:
Skipped...
Ой, как же я мог так оступиться?!
Ты считаешь, чистота языка заключается в использовании контейнеров STL ?

Меня т.н. чистота языка не интересует. Это ты много раз писал, что если писать на С++, то вместо массива нужно использовать вектор, и вообще массивы использовать не нужно. Поэтому я удивился, что ты с STL-вектора перешел на массив.

Цитата:
Или ты считаешь, что основной выигрыш в скорости за счет массивов?
Если так, то ты ошибаешься дважды.

Какой выигришь в скорости? Ты же выше писал, что алгоритм PitxBull неудачный.

Цитата:
Кстати, ты всерьез считаешь, что информация о том, что контейнеры несколько медленнее массивов , известна только тебе?

Если это тебе было известно, то соревнуясь с PitxBull почему ты перешел на массивы после него? А не сразу же?

Цитата:
Видимо, ты плохо читаешь не только код (баги мерещаться...), но и посты в форуме. Я уже не раз объяснял, в чем координальная разница в моем подходе к решению и в твоем... упс... оговорился.. в подходе PitxBull

Извини, специально для тебя повторяться не буду... просто, не хочу.
Но если кого-нибудь заинтересует это различие в подходах, расскажу ещё раз.

Cпециально для меня можешь не повторяться, твой подход к решению задач меня не интересует.

Цитата:
Может, посчитаем все попытки PitxBull до того, как он взялся за мою программу?

Во-первых, как ты уже раньше писал, у него совсем другая программа. Т.е. если и изменил твою программу, то это было его первая попытка. Во-вторых, если я тебя правильно понял ты его считаешь слабым программистом. Но это твоя новая программа работает быстрее от его посл.программы на 8%(18гор) и ~6%(36гор). Значит ты лучше от слабого программиста на 8%? :)

Цитата:
Процесс оптимизации бесконечен, как путь к совершенству.

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

Цитата:
Да ничего не мешало, см. пост выше.
Только это сомнительная оптимизация (см.пост ещё выше).

Почему сомнительная? Программа стала работать в среднем на 10% быстрее.

Цитата:
А чего "чемпион" то сам молчит, бросая в бой своих чемпионских мультиков?

Почему мультик? Я же тебя так по-детски не обижал. :) И меня в бой никто не брасывал. Просто считаю, что несправедливо. Когда твоя программа работала быстрее программы PitxBull, то 10-15 человек (мимоходом довольно безрамотно) его проверило. А когда он выставил программу, которая работает быстрее твоего, то за 3 дня никто не осмелился проверить и написать: да, его прога быстрее. Ты теперь выставил новую версию, я мог бы на него вообще не обращать внимание, но если я уж сравнил ваши программы, когда прога PitxBull работала быстрее, то считаю, если я уважаю себя, то сравню их когда картина обратна, а не прячу голову в песок.

3
16 марта 2007 года
Green
4.8K / / 20.01.2000
Цитата: Мerlin

Меня т.н. чистота языка не интересует. Это ты много раз писал, что если писать на С++, то вместо массива нужно использовать вектор, и вообще массивы использовать не нужно.


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

Цитата: Мerlin

Какой выигришь в скорости? Ты же выше писал, что алгоритм PitxBull неудачный.


"Запорожец" удачный спортивный автомобиль?
Однако и его двигатель можно форсировать.

Цитата: Мerlin

Если это тебе было известно, то соревнуясь с PitxBull почему ты перешел на массивы после него? А не сразу же?


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

Цитата: Мerlin

Cпециально для меня можешь не повторяться, твой подход к решению задач меня не интересует.


Тогда что ты здесь (в этом топике) делаешь?
Борьба за справедливость?

Цитата: Мerlin

Во-вторых, если я тебя правильно понял ты его считаешь слабым программистом. Но это твоя новая программа работает быстрее от его посл.программы на 8%(18гор) и ~6%(36гор). Значит ты лучше от слабого программиста на 8%? :)


Я не занимаюсь сравнительным анализом личностей. Это удел "борцов за справедливость".
Я сравниваю оптимальность работы программ, реализующих два разных подхода к решению задачи. И очень жаль, что сравнивать мой вариант уже не с чем.

Цитата: Мerlin

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


Ты путаешь вполне достижимую цель "до ума" и недостижимый целевой ориентир "до идеала".

Цитата: Мerlin

Почему сомнительная? Программа стала работать в среднем на 10% быстрее.


Ты посты читаешь?

Цитата: Green

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

3.0K
16 марта 2007 года
Мerlin
267 / / 25.07.2006
Пока я писал ответ, ты исправил свой ответ. Но что интересно, внизу нет строчки: Было изменено тогда и тогда этим и этим. Это уже второй случай.
Добавленное новое:
Цитата: Green

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

А что сделал ты (ну или вы), кроме того, как грубить и пытаться потешить своё самолюбие любыми способами, даже таким, как использование исходников оппонента?
Какую цель ты (PitxBull) преследуешь?


1. я не PitxBull.
2. какая грубость?

На счет цели, читал где-то что для самурая нет цели, у него есть только путь. Но это я только так к слову.

На счет этого топика. Буду иметь время, доведу до ума первую программу. Она делит городов на 3 типа, при каждой смене стран:
- доноры, которые хоть раз имели в кассе 1000 монет
- потребители, города, которые имеют соседа донора, но в кассе у них меньше 1000 монет
- ну и остальные города, которые пока еще монеты не получают.

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

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

3.0K
16 марта 2007 года
Мerlin
267 / / 25.07.2006
Цитата: Green
Пожалуйста, найди пост, в котором я говорил, что "и вообще массивы использовать не нужно".

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

Цитата:
"Запорожец" удачный спортивный автомобиль?
Однако и его двигатель можно форсировать.

Не в том речь. Есть машина Х и есть Запорожець. И говориться что машина Х быстрее Запорожца на 10%. То спорный вопрос, почему машина Х быстрее? Потому что он сам по себе такой быстрый, или только потому, что Запорожец довольно медленный?

Цитата:
Тогда что ты здесь (в этом топике) делаешь?
Борьба за справедливость?

Писал выше. Хочу закончить первую прогу и написать вторую.

Цитата:
Ты путаешь вполне достижимую цель "до ума" и недостижимый целевой ориентир "до идеала".

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

Цитата:
Ты посты читаешь?

Не все.

В том посту я ничего не понял. К тому же она обращена к PitxBull.

3
16 марта 2007 года
Green
4.8K / / 20.01.2000
Цитата: Мerlin

На счет этого топика. Буду иметь время, доведу до ума первую программу. Она делит городов на 3 типа, при каждой смене стран:
- доноры, которые хоть раз имели в кассе 1000 монет
- потребители, города, которые имеют соседа донора, но в кассе у них меньше 1000 монет
- ну и остальные города, которые пока еще монеты не получают.

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


Вот это уже другой разговор.
Я пытался применить подобный подход, о чем говорил в посте выше: Скажу больше, что у меня есть заготовка и для непрямоугольного региона обсчета, но она пока не так быстра, как исходный алгоритм.
Я условно называю этот алгоритм "клякса". Суть названия, думаю, понятна.
Как видишь, мне тоже не удалось его разогнать до скорости более примитивных переборов. Думаю, что дело здесь не в реализации, а в банальной сложности алгоритма. Возможно, на больших картах со сложной "географией" такой алгоритм был бы и быстрее, чем простой перебор, но т.к. карта небольшая простой перебор выигрывает за счет своей примитивности.

Цитата: Мerlin

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


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

284
17 марта 2007 года
michael_is_98
587 / / 25.02.2005
Ребята, можно в одном архиве условие задачи и ее ПРАВИЛЬНОЕ решение. Мне интересно, почему она вызвала такую дискуссию. Думаю, вопрос лишь скорости не может быть настолько важным.
3
17 марта 2007 года
Green
4.8K / / 20.01.2000
Условие описано в файле EuroDiffusion.txt, который лежит в каждом пакете с исходниками. Например здесь:
http://forum.codenet.ru/showpost.php?p=175042&postcount=155

Правильное решение можешь получить запуском программы, указав в качестве параметра командной строки файл с набором стран (in.txt).

Вопрос лишь скорости, конечно, не может быть самым важным. Самое важное - это правильность решения. Но т.к. за редким исключением (PitxBull раза два-три выкладывал невалидные версии) программы работают верно, поэтому встает вопрос о производительности.

Собственно гонка за скоростью началась после того, как я покритиковал программу PitxBull за её сложность, запутанность и как следствие медлительность (см. пост http://forum.codenet.ru/showpost.php?p=151184&postcount=41).
Забавно, что я предполагал, что "скорость при должном алгоритме и архитектуре можно поднять как минимум в 10 раз". Сейчас же мы имеем ускорение более, чем в 300 раз, судя из примера с 18 странами: 290с / 0.937, т.е. на 99,7% (это я сравниваю первый вариант PitxBull с моим крайним).
И ещё интересно, что по сравнению с моим первым вариантом программа на данный момент ускорилась в 16 раз (93,8%), а вот по сравнению с моим же вторым вариантом ускорение всего в 1,3 раза (22%). И хотя сама по себе оптимизация на 22% - это очень сущуственно, но по сравнению с первыми шагами оптимизации видно, что основная оптимизация произошла именно между первой и второй версией, где-то в 12,5 раз (92%) из которых 85% за счет разделения мотивов.
21K
04 апреля 2007 года
__!PitXBull!__
34 / / 18.02.2007
2Green ты уже достал своей привычкой обвинять в своих грехах ( плагиаторство и т.п. ... ) других. я пока не тестировал твою новую прогу так как опасаюсь запускать exe-file выложенные сомнительными личностями вроде тебя , можт ты будешь следовать своим приниципам и выложишь исходники ? :D . кроме того я не улучшал твой алгоритм а просто воспользовался твоим проектом, в результате чего пришел к выводу что твои эпизодичекие успехи были вообщем то по большому счету явлением случайным. более того сегодня мне удалось составил тест на котором твоя старая прога обскакала мою. см.вложение. так или иначе на данный момент можно сказать что на более заполненных пространствах выигрывает моя прога , на более же разреженных иногда выигрывает твоя. так что ( если не учитывать кол-во спертых тобой у меня идей ) можно сказать ничья. тем не менее у меня есть идея как улучшить функционирование моего алгоритма ( который ты судя по всему успешно дизассемблировал ) на более разреженных пространствах, так что думаю за мной будет победа по всем тестам. подожди , можт седня можт через пару недель , я реализую это. ждите. :D.
3
04 апреля 2007 года
Green
4.8K / / 20.01.2000
Извини, я уже давно потерял интерес к теме.
21K
23 апреля 2007 года
__!PitXBull!__
34 / / 18.02.2007
2Green
перечитал некоторые посты внимательнее. считаешь меня слабым программистом ? :)))))))) впрочем как и большинтсво худосочных леад программистов или дебилов менеджеров руководителей групп вызубривших наизусть пару книг по C++ и возомнивших себя супер программерами и меряющими по данному шаблону других :)) и не дающие мне на этом основании работы. на словах вы все крутые и тесты по C++ проходите на отлично но вот когда дело доходит до практики вы вдрызг проигрываете ( как показала эта тема ) программерам моего типа ( которых ты упорно называешь шизиками, аутами и пр. ). думаешь отделаться тем что эта тема больше тя не интересует ? для меня это звучит как признание тобой своего поражения. седня ночью я снова засяду за эту прогу и думаю на примере test_in6 где твоя прога показывает 205! секунд я думаю смогу улучшить пример до 50 - 80 секунд. именно такие темы и расставляют все точки над i выявляют действительно слабых программеров которыми являются такие как ты. именно эта тема ясно показала ( и вообщем то для это я ее и создал , устав бороться с дебилизмом леад - программеров и менеджеров на собеседованиях при приеме на роботу ) что ты и тебе подобные являются на самом деле полными нулями в программировании.

ну что сдаешься ? :D :

P.S. надо бы послать ссылку на эту тему в ту контору где мне предложили эту задачу. вот было бы интересно посмотреть на их дебелые рожи. :D
3
23 апреля 2007 года
Green
4.8K / / 20.01.2000
Извини, я уже давно потерял интерес к теме.
40K
12 июня 2008 года
nitzshe
5 / / 12.06.2008
Нда... Осилил только первые 6 страниц ветки. Далее просмотрел бегло все страницы. чем ближе к концу ветки, тем отчетливей заметны оскорбления, поэтому читать это стало не интересно.

У меня вопрос, нормально ли получать подобную задачу, но с использвоанием RMI, для джуниора Java программиста без опыта работы?
63
12 июня 2008 года
Zorkus
2.6K / / 04.11.2006
Цитата: nitzshe

У меня вопрос, нормально ли получать подобную задачу, но с использвоанием RMI, для джуниора Java программиста без опыта работы?


В каком смысле - подобную?
Задачу на алгоритм, задачу с многоступенчатой оптимизацией, задачу на RMI? Кстати, каким боком тут RMI - требуется организовать распределенное вычисление, что ли?
Без опыта работа, и Jinuor - это расплывчатая характиристика твоих скилов, может расскажешь точней?
Ты считаешь, что тебе дали непомерно трудное задание, что ли?

40K
12 июня 2008 года
nitzshe
5 / / 12.06.2008
Цитата: Zorkus
В каком смысле - подобную?
Задачу на алгоритм, задачу с многоступенчатой оптимизацией, задачу на RMI? Кстати, каким боком тут RMI - требуется организовать распределенное вычисление, что ли?
Без опыта работа, и Jinuor - это расплывчатая характиристика твоих скилов, может расскажешь точней?
Ты считаешь, что тебе дали непомерно трудное задание, что ли?



Подобную - в смысле именно эту задачу, но с использованием распределенного вычисления и на джава.
Скилов нет, вообще. Только теоретические знания джавы и ООП, выполнял для студентов бесплатно пару заданий на фрилансе, типа отчеты из базы данных в разные форматы файлов, с RMI распределенно сравнения стрингов, но ни одного самостоятельного проекта не было.

63
13 июня 2008 года
Zorkus
2.6K / / 04.11.2006
Цитата: nitzshe
Подобную - в смысле именно эту задачу, но с использованием распределенного вычисления и на джава.
Скилов нет, вообще. Только теоретические знания джавы и ООП, выполнял для студентов бесплатно пару заданий на фрилансе, типа отчеты из базы данных в разные форматы файлов, с RMI распределенно сравнения стрингов, но ни одного самостоятельного проекта не было.


Интересная задача, радуйся :)
Ну алгоритм тут обсуждается подробно, исходники (правда на С++) есть.
Значит, надо подумать -
1) На какие это можно разбить части, которые можно посчитать
независимо? Первое условие эффективного распараллеливания.
2) Рассмотреть/убедиться в независимости порядка вычисления этих частей друг от друга (я бы попробовал, чтобы не возиться с взаимными зависимостями подзаданий заданий расчета, которые существенно все усложнят и могут привести к замедлениям).
3) Архитектура программы.
Какой ты ее видишь?
Тут кстати, я могу предложить как вариант, архитектуру для распределенного вычисления без RMI, только на сокетах. Если интересно, изложу подробней.

40K
13 июня 2008 года
nitzshe
5 / / 12.06.2008
Цитата: Zorkus
Интересная задача, радуйся :)
Ну алгоритм тут обсуждается подробно, исходники (правда на С++) есть.
Значит, надо подумать -
1) На какие это можно разбить части, которые можно посчитать
независимо? Первое условие эффективного распараллеливания.
2) Рассмотреть/убедиться в независимости порядка вычисления этих частей друг от друга (я бы попробовал, чтобы не возиться с взаимными зависимостями подзаданий заданий расчета, которые существенно все усложнят и могут привести к замедлениям).
3) Архитектура программы.
Какой ты ее видишь?
Тут кстати, я могу предложить как вариант, архитектуру для распределенного вычисления без RMI, только на сокетах. Если интересно, изложу подробней.



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

40K
19 июня 2008 года
nitzshe
5 / / 12.06.2008
кто-нибудь может подсказать, что значит :


typedef std::vector<int> CityLine;
typedef std::vector<CityLine> Cities;
typedef std::vector<Cities> CitiesByMotif;

и

typedef std::vector<Portion> PortionLine;
typedef std::vector<PortionLine> Portions;
typedef std::vector<Portions> PortionsByMotif;

Как-то не пойму аналогии с джавой.
40K
19 июня 2008 года
nitzshe
5 / / 12.06.2008
Цитата: nitzshe
кто-нибудь может подсказать, что значит :


typedef std::vector<int> CityLine;
typedef std::vector<CityLine> Cities;
typedef std::vector<Cities> CitiesByMotif;

и

typedef std::vector<Portion> PortionLine;
typedef std::vector<PortionLine> Portions;
typedef std::vector<Portions> PortionsByMotif;

Как-то не пойму аналогии с джавой.



вот это еще понять могу:
typedef std::vector<int> CityLine;
это инициализация вектора. Но что дальше происходит?
Что вот это:
typedef std::vector<CityLine> Cities;
typedef std::vector<Cities> CitiesByMotif;

11
19 июня 2008 года
oxotnik333
2.9K / / 03.08.2007
определение пользовательских типов
 
Код:
typedef std::vector<int> CityLine;
 
CityLine m_CityLine; // определение переменной типа CityLine;
m_CityLine.push_back(SomeValue);
84K
17 июня 2012 года
avilive
1 / / 15.06.2012
У кого то еще остался пример реализации данной задачи ? Буду благодарен , если кто-нибудь поделиться им со мной.
84K
10 августа 2012 года
phidel_castro
1 / / 10.08.2012
Прошу прощения за наглость.....скажите пжлста в чем суть задания
мы подаем на вход координаты стран? как именно, что значит ---- France 1 4 4 6 ?

как взять исходники, их я не мугу найти, пишет запрашиваемая стр удалена .....

Очень нужно

заранее спасибо
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог