programmer в Free
  • Как называется паттерн который принимает решения?

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

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

    Так и я могу, чего там, даже пару накидать вариантов того же самого:
    Haskell:

    calc funcs n = 
            let l = length n
                index a = sum $ zipWith (\x y -> (2 ^ x) * y) [l - 1, l - 2 .. 0] a
             in funcs !! (index n)
    

    J:

       funcs =: f0`f1`f2`f3`f4`f5`f6`f7
       calc =: funcs@.#.
    
    Kод, написанный Mike Gorchak, не конечный автомат Мура без памяти. Пруф:
    ru.wikipedia.org/wiki/Автомат_Мура
    или очевиднее на формулах:
    ofap.ulstu.ru/...ory_of_automats/part1.htm
    Т.е. в автомате Мура выходной сигнал зависит только от состояния. В случае, если без памяти, это равносильно 1 состоянию. Т.е. автомат возвращал бы всегда одну и ту же константу.
    Возможно это автомат Мили без памяти. Но тогда судя из формулы, с одним состоянием — это просто функция. Т.е. функция как черный ящик, не известно как реализованная. Я очень редко пишу функции, на этом надо обязательно заострять внимание. Да, выше в коде написана функция. Но там даже нет сигнатуры ее, хотя бы вот так надо было написать:
    void calc(int cb1, int cb2, int cb3)
    {
          _i_hate_patterns[cb1 | cb2 | cb3 ].func();
    }
    

    И в коде только строка void calc(int cb1, int cb2, int cb3) относилась бы хоть как-то к конечному автомату. Но даже сигнатуру надо довообразить. По факту там ни строчки кода к конечному автомату не относится. Нужно большое воображение, чтобы его там представлять.
    А

    ну вот вы и узнали зачем люди учаться на програмистов
    приходите к нам в финансы — вообще заколдобитесь
    это я уже понял. С моим физматом ловить нечего. Физмат убивает воображение.
    это видимо ритуальное самоубийство на этом ресурсе ))
  • Как называется паттерн который принимает решения?

    а про корзинки вы читаете? если разница между количеством значений в корзинках единица — то это крутой хеш. Равномернее не бывает. К сожалению, числа с дробной частью количества значений не бывают.

  • Как называется паттерн который принимает решения?

    Т.е. в корзинках приблизительно одинаковое число значений

    0 и 1, значения близкие. Если массив соорудите нужного размера.

  • Как называется паттерн который принимает решения?

    Ну да, идеальный хеш. Но вы поняли, что я хотел сказать. Равномерный, может и не пользуется как название, но подразумевается. Пишут, например так, что хорошим решением будет, когда хеш-функция выдает «случайные» значения. Подразумевают равномерное распределение. Т.е. в корзинках приблизительно одинаковое число значений. А идеальный хеш — частный случай — по одному.

    Только не говорите, что корзинки называются ведерками или еще как-то )))

  • Как называется паттерн который принимает решения?

    Звідки ви знаєте, що не будуть використані? По-перше, я так і писав, що задача не зрозуміла, тому я запропонував найпростіше рішення, якщо не відомі додаткові умови.
    Таке рішення буде працювати зразу. Якщо пізніше виявиться проблема з комбінаторикою, тоді можна рефакторити і обирати краще рішення.

    Наприклад, в даному випадку кількість элементів в дікшинарі дорівнює кількості різних об’єктів. А її можна моделювати, змінюючи тіло Equals. Тобто така структура данних дозволяє в теорії тримати рівно стільки функцій, скільки потрібно.
    Звичайно, якщо будуть додаткові умови такі, що чекбокси залежні, то можна використовувати інші підходи. Незалежність чекбоксів — це більш простий підхід, краще зразу обирати такий. Тому що якщо відразу обирати підхід з неявними залежностями, то і код буде з залежностями, а значить його важче змінювати, розширяти.

  • Как называется паттерн который принимает решения?

    Про паттерны поддерживаю. Но у меня с ними особые счеты ))

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

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

    А паттерны — это плохо, потому что они заставляют думать о «потом», не YAGNI. Когда как если по ягни при наличии повторений, при механическом рефакторинге на счет раз выделяется общий предок или интерфейс и паттерны получаются автоматически не опережая время

  • Как называется паттерн который принимает решения?

    А если провести с аналогию с рациональностью, то говорите ерунду.

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

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

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

    Давайте так митинги утренние проводить:
    — Чем сегодня заниматься будешь? Будешь писать конечный автомат или будешь писать конечный автомат?
    — Надоело мне уже писать конечный автомат. Пожалуй я выберу конечный автомат.
    — Хорошо. Только вопрос. Как тебе удается всегда выбирать что-то новое, даже когда совсем не остается выбора???

    Вы пишете хештаблицу, а называете это конечным автоматом. Ну ок. Я сдаюсь, формально вы правы.

  • Как называется паттерн который принимает решения?

    ну вы даете с этим автоматом ))

    Чисто формально да, если нет состояний, то можно сказать, что это один из частных случаев автоматов, с одним состоянием и петлей. Вот я и писал что с натяжкой. Хотя формально да, автомат (я образование не программиста получал, мог ошибаться).
    Но только ж это бессмыслица в некотором роде. Потому что определение чего-либо должно «определять», т.е. ограничивать в чем-то множество объектов. Я так слегка представил, каким путем шли рассуждая в математике. Разбирали автоматы с состояниями, а потом для общности определили и в автоматы то, что не имеет состояний, как бы потому что оно можно сказать имеет одно состояние. Почему нет.

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

    А раз всё автоматы, то на что этот код еще похож? На хештаблицы. Хеш создаете равномерный, когда чекбоксами включаете биты.

    Ну ладно, пусть будет автомат )) Мне всё равно как это называть, решение годится. А паттерны — зло.

  • Как называется паттерн который принимает решения?

    Я в курсе.

    int (*func)()

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

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

  • Как называется паттерн который принимает решения?

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

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

    Поддержал: Yaroslav Zeygerman
  • Как называется паттерн который принимает решения?

    Да можно даже ифами. Можно свитч. Но лучше дикшинари.

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

    Перечисление с типом расчета и свитч по нему — тоже не очень. Оверхед. Т.е. я так понял, что у вас есть словарь, значениями у котором тип (перечисление). А потом, зная тип, выбираете свитчем что делать.

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

    Поддержал: Dmitry ew6
  • Как называется паттерн который принимает решения?

    А тут задача не ясна.

    Зачем сразу паттерны? Самое простое и расширяемое решение — заводите словарь, ключом в котором объект с состояниями чекбоксов, а значением — тип расчета. Это самое простое и легко расширяемое для большинства случаев решение. Плюс в том, что легко расширяется и нет связей между разными комбинациями чекбоксов. В этом же минус, если вдруг в задаче явно можно чекбоксы на группы разбивать и группы имеют отдельный смысл. Но для этого надо узнать задачу.

    Если это дотнет, то обычный хеш-словарь — Dictionary<>. В классе, который будет использоваться как ключ, переопределяете GetHashCode и Equals. И профит.
    Не нужно усложнять. Иногда структуры данных лучше паттернов.

    Поддержал: Евгений Козлов
  • Есть ли жизнь после Java?

    Не только подсветка. IntelliSense например. Очень помогает. Или перейти на объявление функции из контекстного меню. Быстрее и приятнее, чем пользоваться текстовым поиском.

    Оно кажется только не важным, потому что и так и иначе задача решается. Но это всё равно, пока делаешь код не за деньги. А когда за деньги — производительность играет роль.

    Поддержал: Alex Alex
  • next: Мариуполь

    Появление Левашова в «документальном» фильме сразу же сводит к нулю его информационную ценность. Так что обсуждать там нечего.

  • Репутация пользователей

    «Бессонница крыльями машет в окне,
    Не спится, не спится, не спится бы мне» ©

  • Тунеядство и тюрьма

    Немного порыл вашу статью. Подозрения косвенно оправдываются. Там список по убыванию крупнейшей 20-тки агрохозяйств. В сумме у них земли 2,9314 миллионов гектар. В Украине 27,2 миллионов гектар посевных площадей. Т.е. это только где-то десятая часть земель. Может показаться, что это много для всего двадцатки. Но я накидал данные и построил график, как видно, там хозяйства расположены по убыванию земли.
    Смотрим на график:
    s004.radikal.ru/.../1505/4e/57c2326c4a7b.jpg
    Замечательно. Хвост графика где-то на 20 тыс гектар. Экстраполировать мне лень, но очевидно, что дальше добирают мелкими хозяйствами. Когда будет в районе 1000-500 гектар, это уже мелкие фермерские хозяйства. Да, не свою землю обрабатывают, арендуют, но это как раз те, что я описывал.

  • Тунеядство и тюрьма

    Знаете, у нас всегда была такая интересная агитация, раньше, лет 10-20 назад, особенно перед выборами. В городах всем раздавали газеты о том, что будут все делать для города, в селах, что повернутся лицом к селу. Там, где для города инфа, там всегда отмечались огромные успехи в сельском хозяйстве. А вот, при еще Януковиче, Азаров любил хвастаться, что мол при его руководстве уменьшилась цена на какую-то продукцию, вроде капусты, или подсолнечного масла.

    Но тот кто в теме, просто афигевал, каким боком к этому министры и Азаров. Разве что могли задавить рынок, чтобы сбрасывали цену.

    То же и здесь. Читая эту статью, а я жил и бываю там, в том районе, где как будет лето, здесь все рынки будут забиты капустой, огурцами, помидорами, арбузами и прочими вещами. И нет ни одной такой афигенной агрофирмы, люди пашут как лошади, пользуясь вот таким инструментом на палке:
    http://spravka.ua/thumbnail.php?size=700&path=http://spravka.ua/company/pphoto/66/668/6686cff1ca9077272ac3c892fd4b54dd.jpg&fid=343213&md=d502dd65202459382083e40104a587c3
    Так вот я к чему. Похоже на то, что это просто статья ни о чем и ни на чем не основана. И при этом не врет. Вот, например, я как программист открыл себе ФОП. Ну бизнесмен же. Так и там, в селах. Есть фермерские хозяйства. Это человек выживает, один, может два трактора. Иногда вырастает маленькое хозяйство — три трактора и два рабочих. И если посмотреть в открытые источники, так бизнес процветает, землю обрабатывают, сплошные успехи (правда ни журналисты ни власть к этим успехам не имеют отношение, скорее люди выживают вопреки). Такая манипуляция статистикой вполне даст 70%. Но при этом, не все эти 70% пользуются последними достижениями науки и техники, а также закупают лучшие удобрения.

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

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

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

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

    Поддержал: Mikl Kovach
  • Тунеядство и тюрьма

    И?

    То, что вы перечислили, хорошо. Но сельское хозяйство — это в первую очередь посевные площади. Если Мироновский хлебопродукт с Нибулоном и им подобные покроют хотя бы половину площадей, тогда можно говорить, что сельское хозяйство — не пенсионеры.
    Я о том и рассказываю, что там (в среднем) серьезные проблемы. А пенсионеры тут притом, что у них земля, она еще не продается, насколько мне известно. И какие-то крупные агропредприятия берут ее в аренду.

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

  • Тунеядство и тюрьма

    Я про Херсонскую область.

    Молодежи меньше чем раньше, но все таки много. Не все уехали пока. За бутылку конечно никто не сеет. Всем давно нужны деньги. Но деньги не большие. Арендовать сложновато, потому как уже давно поделено между теми кто может обрабатывать, в смысле имеет деньги на топливо, кой какую технику. И таких людей действительно мало, иногда они нанимают себе рабочих трактористов.

    Основная проблема, по-моему — это пенсионеры и отбирание результатов труда. Т.е. посредники. Если еще перевозки по Украине — штука рыночная и немонопольная, то цены на зерно, семечку, какие сказали, такие и есть.
    А проблема в пенсионерах в том, что они владельцы средств производства, в котором они не заинтересованы и не заинтересованы в получении прибыли.

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

    Так что уменьшение населения в селах и его старение — процесс естественный.

  • Тунеядство и тюрьма

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

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

    В селе распаевали землю после СССР, между людьми. Так вот в большинстве своем это сейчас пенсионеры. Или их дети. В селе сейчас считается, что богато живут только пенсионеры. Получают мизерные деньги — 1500 гр где-то, а молодежи эти деньги еще выбить надо. При этом, деньги эти пенсионеры и не тратят, только хлеб покупают. Выращивают еду себе сами, ума много не надо. При этом у них есть земля. Которую они отдают в аренду. И жестко демпингуют. Отдают за копейки. Т.е. пенсионер за не фиг отдаст несколько гектар в аренду за пол тонны зерна. Почему? Да потому что столько ему хватит на год кур прокормить. И точка.
    Остальные же не могут завысить цены на аредну, после демпингования пенсионеров.

    Поэтому если у какого-то владельца есть деньги, он нанимает рабочих, там с 10 человек хватит обработать при наличии техники и 1000 гектар. И платит по 3000 гр, допустим (это я даже завысил, но за такие деньги точно будет очередь желающих). За такие деньги получает раба. Раб готов быть на работе с рассвета и до заката. Он готов распрощаться и отдать в аренду свою землю и работать на кого-то день и ночь, потому что за эти деньги даже прожить можно.

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

← Сtrl 123456...20 Ctrl →