>>1293035 (OP)Дан полигон на плоскости (набор точек координат x,y). Как быстро определить, по часовой или против часовой стрелки расположены эти точки?
Ну ты бы хоть постарался, сделал маст рид книги там, ссылки на сайты с визаулизацией и все такое. Так то хороший тред.
>>1293052Я для вопроса тред создал. Я юрист, вкатывающийся в кресты, самому бы мне кто вот это всё подкинул.
>>1293059Книга Algorithms Unlocked (Кормэн) для начала - очень хорошо.И там нет привязки к конкретному языку.Есть Grokking Algorithms, но там совсем уж разжёвывают и мусолят очевидные вещи.Есть Classic Computer Science Problems in Python, но она пока не вышла (MEAP), поэтому в интернетах её ещё нет, наверное.И дохерища книг по алгоритмам конкретно на C++.
>>1293107Есть русский перевод Algorithms Unlocked:https://www.ozon.ru/context/detail/id/24903185/С гугла ещё можно начать.И с ютуба.
>>1293112> гугла, ютубаЗа подобные советы следует бить сапогом в тупое рыло.Люди приходят сюда, чтобы найти проводника, любую путеводную ниточку в океане информации, в котором в ином случае они потонут.
>>1293152В гугле легко найти ответ на узкий, специфический вопрос, типа как скопировать из байтового массива биг-ендиан с диска в массив дабл на перл. Если ответ вообще есть, гугл его найдет. А вот ответы на вопросы планетарного и мировоззренческого масштаба:- как выучить ц++ за месяц- как познакомиться с тян- лучшая книжка по программированиютам не найти.
>>1293130Что-то ты больно раздухарился.На, вот, тебе путеводную ниточку, возьми её покрепче, и пиздуй по ней прямо на хуй.
>>1293047>Дан полигон на плоскости (набор точек координат x,y). Как быстро определить, по часовой или против часовой стрелки расположены эти точки?Быстро - никак.
>>1293367А о чём речь вообще?Я нихуя не понял, в каком смысле произвольный набор точек может быть по- или против- часовой стрелки?
Мой совет анонам которые вкатываются или прокачивают скилы.Начинайте с олимпиадных задач (к примеру на acmp.ru) сортируете по сложности и начинаете с простых (первая будет вывести a + b)Сложность там растёт постепенно и с одной стороны прокачаете использование языка программирования (работа со строками, с массивами и т.д.) + голова начнёт думать в нужную сторону.После первых примерно 100 задач уже можно вкуривать книги по алгоритмам иначе очень сложно будет понять и саму идею алгоритма и главное прочитать код.
>>1293380>Мой совет анонам, которые вкатываются или прокачивают скилы.После 10 задач вы уже должны понять что к чему, закрыть эти сайты нахуй, открыть сайты с вакансиями (лучше зарубежными), посмотреть то, что действительно нужно на рынке, и начать развиваться в более прикладные темы. Помимо этого учить английский и китайский.Нет, я не призываю съебывать с родного гнезда - тут как хотите. Я призываю не тратить время на изучение способов победить дракона. Драконов не существует, а время будет упущено.После стольких лет потраченных на универские/республиканские олимпиады, ACM, topcoder и т.п., я работаю байтоёбом за $700.Да, мои навыки пригодились заебенить хитрые алгоритмы в микроконтроллерах, но мои согруппники все пошли другим путем и более успешны в жизни.Этой хуней стоит заниматься только в исследовательских целях, если ты препод в универе, или пока студент, да и то, когда делать больше дейсвтительно нехуй.
>>1293442>я работаю байтоёбом за $700Зачем ты это делаешь? Любой выпускник специальности уровня бухгалтерский учёт и информационные технологии в гостиничном хозяйстве и животноводстве, прошедший уроки по крестам на каком-нибудь приложении для негров и ЛГБТ, типа sololearn, и умеющий в сортировку пузырьком (даже в максимально неоптимальную), без проблем найдёт работу за 70-80 тыс. джуном в ДС и даже при полном долбоебизбе, через год будет получать 100-120к
Советую лекции Тимофея Хирьянова: алгоритмы на PythonОчень интересно и годно рассказывает плюс есть задания. Рассчитано на лоу-левел, но даже если какие-нибудь знания есть все равно интересно слушать будет.Надо найти кого нибудь из МФТИ и ответы на домашки спросить.
Столкнулся с такой проблемой: читаю описание алгоритма, все хорошо понимаю, но реализовать на языке программирвания нихуя не могу. Что делать?
Читайте SICP и вкатывайтесь в ДжаваСкрипт, и алгоритмы поковыряете, и нахуй сядете бабло заработаете./thread
Читайте Кнута и вкатывайтесь в ДжаваСкрипт, и алгоритмы поковыряете, и нахуй сядете бабло заработаете./thread
>>1293442Ну знаешь, иметь знания мало, нужно ещё уметь их продавать как бы. Очень тупо, имея охуенные познания в математике/алгоритмах/хуитмах/машобе идти работать формошлёпом или на галеру тесты для всякой хуиты писать.
>>1296750На каком языке?И как давно ты программируешь?Выглядит так, что недавно.У тебя пока просто нет интуиции как выразить то или иное понятие в виде структуры данных или функции.Что делать?Взять книжку с примерами на нужном тебе языке, и смотреть, как там это делают.
>>1296854>На каком языке?Джава>Выглядит так, что недавно.Так и есть>Взять книжку с примерами на нужном тебе языке, и смотреть, как там это делают.Спасибо, я пробую так делать и вроде получается, но дело в том что даже после такого как я успешно реализую алгоритм, весь процесс улетучивается из головы за пару дней.Хз может дело в том, что я не применяю эти знания на практических задачах, а тупо повторяю алгоритм по памяти
>>1297129Суть не повторить его по памяти а понять как именно он работает, в чем его основная идея и отличие от всех других.
>>1297245В профильных вузиках в предмете структуры и алгоритмы обработки данных когда изучают сортировки учат сам алгоритм а не реализацию. И на экзамене ты к примеру сортируешь длинное составное слово (обычно твоё ФИО) пирамидальной сортировкой и на бумажке каждый шаг пишешь. Без всяких переменных прост как на каждом шагу будет меняться результат.
Дан набор координат на одномерной линии - набор точек с единственной координатой. По типу 1, 3, 5, 3 и тд. Как распределить по этим координатом условные n монет, так чтобы монеты были на максимальном друг от друга расстоянии?
>>1298773На дороге нужно поставить бигборды. Возможные места расстановки бигбордов - расстояние от начала дороги. Даются ввиде (1, 5, 3, 8, 1, 7, 54, 2, 3} При этом задача расставить бигборды на максимальном удалении друг от друга. Ну вход подаем места расстановки бигбордов и количество бигбордов для установки. На выходе программа выдает найменьшее расстояние между двумя бигбордами из набора бигбордов расставленных по условиям задачи. Примеры:Возможные места:{ 250, 500, 750 }Количества бигбордов:0Расстояние: inf3Расстояние: 2502Расстояние: 5001Расстояние: inf4"невозможно расставить"
>>1299964А подробнее? Была идея поделить длинну от первого до последнего на куски и для каждого куска искать ближайшее что есть из списка, но там немного неадекватное количество итераций получается, хотелось бы что-то лучшее
>>1299966Пусть надо расставить билборды с расстоянием не больше х.если это невозможно - значит нет смысла рассматривать все x'>xесли возможно остается диапазон [0,x].. и бинарный поиск по х
>>1293442> После стольких лет потраченных на универские/республиканские олимпиады, ACM, topcoder и т.п., я работаю байтоёбом за $700.как ты так умудрился расскажи?я тоже потратил много лет на эту хуйню, был посредственным желтым топкодером, гугл интервью благополучно сфейлил, но какие то навыки остались и зарабатываю эту сумму примерно за день (я надеюсь что благодаря олимпиадам)
Классическая задача: найти в массиве k минимальных элементов.1. Отсортировать все к ебене матери - O(n long(n))2. Использовать max heap - O(n log(k))3. Partial quick sort - O(n), но это не точно сложность может варьироваться в зависимости от погоды на ВенереКакие еще есть варианты?
>>1300738Нахуя усложнать жизнь ну и алгоритм? Перебирай массив k раз. Каждый раз находишь ммнимальный элемент и удаляешь его из массива. Выходит O(n*k)
>>1300965Можно еще сгенерировать все перестановки исходного массива, убедиться что он в неубывающем порядке, и взять k-ый элемент.Вроде выходит O(n!*n)
>>1300965При k = n/2 получаем O(n^2) - это успех!Вообще, я думал над чем нибудь вроде BFPRT-Алгоритм, но там нужен еще один проход. Хотелось бы без этого.
>>1301009А это >>1300965 не сарказм чтоли? Тогда я явно переоценивал интеллектуальные способности в /pr.
>>1293047Посчитать площадь через сумма (x + x[i - 1])(y - y[i - 1])Если она положительна, по против часовой.
>>1300738Третий варик оптимален. Если выбор pivot всегда происходит n/2, то линейная сложность доказывается как T(n) = T(n / 2) + O(n) = O(n)У рандомизированного алгоритма ожидание линейноеЕсть ещё более продвинутые варианты поиска pivot
Как разбить массив элементов на рандомные пары? Например, на arr {1, 2, 3, 4} на 2,3 и 1,4 ну иои 1, 2 и 3,4Пока что в мою тупую голову ничего, кроме связного списка, из которого каждую итерацию искать пару и удалять ее, не приходит. Мб есть варианты получше? А то по времени хуйня выходит. хотя у меня максимум будет пар 10, но ОПТИМИЗИРОВАТЬ хочется же
Какая есть годнота по алгоритмам, чтобы самый конченный даунич вроде меня научился решать задачи? Сейчас сижу и нихъуя не понимаю чего от меня хотят
>>1303971> Какая есть годнота по алгоритмам, чтобы самый конченный даунич вроде меня научился решать задачи? Сейчас сижу и нихъуя не понимаю чего от меня хотят Алгоритмы не для даунов. Не можешь посчитать сложность - пиздуй работать дворником за 5к в месяц.
>>1293047Гугли "псевдоскалярное произведение" или "предикат левый поворот" - если его посчитать, то можно по знаку понять, поворачиваются отрезки в цепочке против часовой стрелки (влево) или по (вправо).Если полигон правильный и выпуклый, достаточно первых двух отрезков (трех точек) чтобы определить расположение.Если же нет - нужно обойти все точки следующим образом: берешь фиксированную точку (например (0;0)) и считаешь псевдоскалярным произведением для каждого ребра полигона ориентированную площадь треугольника, составленного из этого ребра и фиксированной точки - и складываешь. Если сумма положительная - то против часовой, если отрицательная - то по часовой.
Помогите. Есть некая задача ДИСКРЕТНОЙ комбинаторной оптимизации.Суть в том, что целевая функция не гладкая, а дискретная.Самая главная проблема в том, что при небольшом изменении входных X может очень сильно меняться итоговый Y.Точнее для подавляющего большинства X вообще не существует Y.Но если уж для какого-то входного множества находится решение, то эти решения можно между собой "гладко" сравнить, чтобы качественно узнать насколько какое из них лучше.Короче исследуемое многомерное пространство представляет собой кучу рандомно раскиданных точек, между которыми нет плавных переходов (задача дискретна).Весь трабл в том, что даже если ты нашел какое-то решение, то это тебе вообще нихуя не говорит о том, что где-то рядом с ним могут быть другие решения.И что делать блять? Большинство алгоритмов оптимизации заточены или вовсе на гладкие функции (тут вообще проблем нет) или что хотя бы для каждого входного икс дискретной функции можно будет получить игрек и что малое изменение икс также мало меняет игрек.А тут это нихуя блядь не так.
На вход подаются данные - 3 и более числа в виде X+Y=Z Каждое число представляет собой набор цифр дающих в итоге операцию сложения, при этом часть цифр в числах пропущена. (пример: 234?34?21+1111????11=??12321?2)Как найти все возможные размещения чисел дающие правильный результат сложения?
>>1293068аноны, а поясните за Седжвика, видел книги по алгоритмам, одну на жабе другую на с++ но как понимаю содержание там похожее, стоит его читать? кормен что-то совсем как книга не заходит, скорей это справочник.кстати искуственного интеллекта можно в этом треде касаться? если да, то посоветуйте еще литературы по искусственному интеллекту. Поведение ботов там и подобное.
>>1309045решал давно, в какой-то книге она была, Лопатина чтоли, динамическим программированием решается
подскажите по алгоритму обхода лабиринта, изучал c/c++ по книге Дейтелов. Книжка могу сказать кстати 10/10, если кто в принципи хочет вкатиться в кодинг, не неосилятор, можете ее читать, есть на русском. Я вот недавно работу нашел на javascript/typescript хотя кроме дейтелов ничо не читал(кроме документации чего-либо), выслали тестовое, сделал прособесили, взялиДак вот в книге после каждой главы есть задачки, как правило все они простецкие, соотносятся с материалом. Но есть задача на проход лабиринта, типа по принципу парвой руки по стене, четсн оя ее решил, но ультра криво, строк на 500 с кучей if-else\switch-case выглядело все крайне хуево. Алгоритм был по сути как вы поняли, фиксируем направление куда идем, если направдение внизу, то правая рука там, если вправо то сям. кароче. Есть кто может подсказать корректное решение задачки?
>>1308000Ты уверен что стоит ебаться с неустойчивой задачей? Малейшая погрешность при вычислениях с плавающей точкой и ты в жопе.Ну ок, очевидно, нужно либо искать цепочку преобразований, переводящий одно решение в другое.>>1303883random shuffle и сразу берёшь пары из массива.
>>1309497Если если много закрытого пространства ебани волновой алгоритм. Если много открытого пространства, то jump point search. Если много открытого пространства, а тайлы разной стоимости то A star.
>>1309572>>1309499в задаче из учебника было именно реализовать алгоритм правой руки, но вам спасибо,за более прикладные решения.
>>1309584В этом случае я бы реализовал каким-то таким псевдокодом:function tryToMove(world) {try = (copy(world.player)).turnRight().move()if (try.ok) return world.setPlayer(try);try = (copy(world.player)).move();if (try.ok) return world.setPlayer(try);try = (copy(world.player)).turnLeft().move();if (try.ok) return world.setPlayer(try);game_over();}
АНАНАС, ВЫРУЧАЙ. Препод грит, что зачет поставит, если реализую нахождение макс паросочетания в произвольном графе
>>1310806Это был мой код, а вообще, ебать, если у вас там такой препод халявный. http://codeforces.com/blog/entry/63630Вот здесь есть ссылки на разные реализации этого алгоритма, в т.ч. на вариант со взвешенным графом. Скинь там своим друзьям плиз
>>1310806Спасибо тебе большое>препод халявныйВроде как толковый мужык. Две универские команды тренирует по спортивному программированию. Одна из них частенько призовые места берет
Нужно бесконтактно проверить размеры детали с допусками. Хочу делать через расстояние между углами, но нормальные люди пользуются Фурье, может кто объяснить почему?
>>1309541>очевидно, нужно либо искать цепочку преобразований, переводящий одно решение в другоеВот с этим-то и проблема, ты все верно понял.Я ищу линейки Голомба (https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BA%D0%B0_%D0%93%D0%BE%D0%BB%D0%BE%D0%BC%D0%B1%D0%B0)Большинство рандомных линеек вообще не являются линейками Голомба.А если у меня есть некая готовая линейка Голомба, я не знаю пути получить из нее другую линейку Голомба путем каких-то преобразований.Мне подкинули в другом треде одну бородатую работу по этой теме, там чел замутил поиск линеек с помощью ген-алгоритма.И в качестве кроссинговера он использует ПЕРЕСТАНОВКИ части линейки.И по идее это должно давать больший успех в получении линеек, чем рандомный перебор.Например, можно заметить, что некоторые оптимальные линейки первых порядков представляют собой линейку из одних и тех же расстояний между метками, но переставленные. Я не верю что это тупо совпадение.Вот с этим хз, пока не тестил.Вообще все это я делал для универа, уже сдал преподу это говно, но сама задача меня зацепила, возможно вернусь к ней потом.
>>1293059Бро, если ты тут, это, я тоже юрист, и тоже вкатываюсь, правда не в кресты, а пока в стэк пайтон/си/джава, дальше хочу js/php и дрочить сайты. Можем скооперироваться.
>>1293035 (OP)Сап аноны, мимо вкатывальщик в работу (перезванивают).Подскажите что можно почитать/порешать по продвинутым алгоритмам. В сортировки могу, типы данных знаю, сикп листал тоже самое только в функциональном стиле и заебами на лиспе. Есть что-то глубже по алгоритмам? Даже не сколько для вката в работу, а просто позалипать вечерами.
>>1314039Реально продвинутые алгосы тебя спрашивать не будут. Всякие стандартные, но узконаправленные типа макс. потока тоже. Обычно спрашивают либо классические, но менее тривиальные типы данных типа хэш таблиц или самобалансирующихся деревьев поиска, либо просят решить несложную олимпиадную задачу уровня 2-3 дивизиона кодфорсеса. Первое ищи в Кормане, ко второму набивай руку сам знаешь где.
>>1293035 (OP)Привет, програнон!Я запилил свою табличку по алгоритмам и структурам данных основываясть на этой пикче ( https://www.reddit.com/r/coolguides/comments/7111gj/coding_sorting_algorithims/ ). Но моя табличка лучше, т.к.:1) опен-соурс2) алгоритмы и структуры рассортированы так, чтобы образовались кластеры в табличке, чтобы было легче запомнить мол тут и тут островок О(n), а по дефолту всё O( log(n) ) Требую свою нефть в карму.А также критику и предложения или запили улучшение и скидывай на джвач дорогойСкачать .xlsx файл (действует пол года):https://my-files.ru/qdko9n
>>1320493Ты что совсем дегенерат? Какое нахуй запоминать, если ты алгос понимаешь то знаешь автоматически его сложность, просто когда армотизированная стоимость операции пруфать нужно, а так ты просто конченый дегенерат, иди лучше задачи решай, а не свою говнотаблицу пили
>>1320493B tree у тебя хуево написано, таам суть в том что лог(н) дисковых операций и т в оперативке поэтому их иногда не считают
>>1321592>если ты алгос понимаешь то знаешь автоматически его сложностьЧто подскажешь прочитать на эту тему? Книгу какую?