Помнится раньше был годный тред на тему CS, однако он скатился из-за споров касательно некого недалёкого ютюбера с никном букву W. В этом треде постараемся не пасть так низко.
Я недавно наслушался разных лекций, видях и осел. Прям ощущения что "всё пропало" и надо срочно учить кампухтер саянс. Начал с математики и железяк, ибо параллельны и не требуют друг другу. Помнится было у меня такое в универе, но я не слушал ибо считал "я погромист, я и не железячник". А щас стыдно.
>>1214744 Меня пермаментно такое ощущение преследует, кстати. Шаг влево, шаг вправо - и все, ебаные дебри и осознаешь, что ничего не знаешь. Се ля ви, епт.
Давайте что ли подскажите, с чего вкатываться, с низов типа принципов работы железок или наоборот сверху в это говно нырять с уровня операционки и потом на всё более низкие вещи спускаться? Я так подозреваю, что оба пути имеют право на существование, но они ведь не равнозначны всё же?
Вкатываюсь в ЦС ваш ебаный, с работы продавана уволили нахуй, 32 года, а хуле ещё делать. Начну смотреть пока курс ХАРВАРДА ёпте. Буду держать в курсе!
Подскажите структуру данных, чтобы хранить множество d-мерных векторов и отвечать на запросы "найти ближайшие в множестве к этому вектору". Где можно про такое почитать?
>>1223452 Что такого тебе скажут в универе, что ты не найдёшь сам? Универ нужен только чтобы давать тебе задачки и проверять их, ну это ты тоже можешь сам. Другое дело, что это сложнее.
>>1223510 >Что такого тебе скажут в универе, что ты не найдёшь сам? Дофига на самом деле. Дело не в доступности знаний. Нужно знать где, что и зачем искать. Когда у тебя базис школьного уровня, ты просто не знаешь о существовании нужных тебе знаний, не можешь понять что тебе нужно, даже когда смотришь на эти знания в упор.
>>1223954 >Пацаны, когда нужно использовать красно-черное дерево, а когда АВЛ? Гугл даёт противоречивую инфу, а тут все мои друзья же. rb - когда больше поиска, мало вставок AVL - больше вставок
>>1224788 >rb - когда больше поиска, мало вставок >AVL - больше вставок >даёт противоречивую инфу Блядь, а я уже нагуглил с точностью наоборот! rb когда больше вставок/удаления, а авл больше поиска. Вот кто пиздит?
Both red-black trees and AVL trees are the most commonly used balanced binary search trees and they support insertion, deletion and look-up in guaranteed O(logN) time. However, there are following points of comparison between the two:
AVL trees are more rigidly balanced and hence provide faster look-ups. Thus for a look-up intensive task use an AVL tree. For an insert intensive tasks, use a Red-Black tree. AVL trees store the balance factor at each node. This takes O(N) extra space. However, if we know that the keys that will be inserted in the tree will always be greater than zero, we can use the sign bit of the keys to store the colour information of a red-black tree. Thus, in such cases red-black tree takes O(1) extra space. In general, the rotations for an AVL tree are harder to implement and debug than that for a Red-Black tree. What are the application of Red black tree? Red-black trees are more general purpose. They do relatively well on add, remove, and look-up but AVL trees have faster look-ups at the cost of slower add/remove. Red-black tree is used in the following:
Java: java.util.TreeMap , java.util.TreeSet . C++ STL: map, multimap, multiset. Linux kernel: completely fair scheduler, linux/rbtree.h
Господа, посоветуйте в таком случае самый годный курс на курсере по CS для быдлокодеров, если знакомы с каким-нибудь. Сам уже второй год в индустрии, есть техническая вышка, но ни матан, ни подобные вещи уже и не вспомнить вообще, а развития хочется и требуется.
Аноны, хочу разобраться в устройстве сети интернет, понимать больше что такое днс, разбираться, как браузер общается с сервером(гет, пост запросы, хедеры и тд), понимать как подделывать эти самые запросы, как работают пакеты. Посоветуйте книг, на данный момент из веба знаю питон на неплохом уровне, если это как-то поможет в совете литературы.
>>1213559 (OP) Фак прочитал, и вопрос, а С не староват для изучения? Я читал даже SICP в MIT к примеру преподавать перестали, универы по всему миру которые раньше только всякие С и преподавали переходят на Яву, Питон и т.д. Не зря учить буду?
>>1247126 Все что сейчас становится модным и "быстрым" (большинство даже не знает почему та или иная технология быстрее другой) написано на С. Иногда на плюсах.
>>1247126 Не перестали, ты это здесь на харкаче небось услышал.
Си учить нужно, чтобы немного в общих чертах понимать про низкоуровневое программирование. Если учить его именно для этого (а не для изучения программирования вообще), то нет, не староват. Там есть конечно определенный шарм 80-ых, типа идиоматичным считается как можно более непонятный код с кривыми непонятными именами, это надо иметь в виду, да. Но если постоянно держать в уме, что это нишевый язык, то все будет ок.
>>1247732 Поверхностно, конечно же. Детали спецификации и тем более имплементаций учить не следует, кроме случаев, когда на этом языке приходится реально писать.
>>1247733 Ну а смысл поверхностно? Ради синтаксиса? Или чтобы ручками пописать базовые алгоритмы к структурам данных, да системные ресурсы повыделять и поосвобождать? Так это можно сделать и в языках высокого уровня.
Допустим, я хочу закодировать гифку 4х4 с такой последовательностью цветов: голубой-голубой-красный-красный-голубой-зелёный-синий-красный-синий-красный-голубой-зелёный-синий-синий-зелёный-зелёный.
Загоняем всё это в байты при минимальном размере кода в 2 + 1 == 3 бита: 00000100 00010010 01001100 01100001 00010101 10011001 00101001 Результат: 04 12 4C 61 15 99 29. Должно получаться то, что я наметил в начале поста, но получается какая-то хуета с чёрными пикселями.
ЧЯДНТ? Разжуйте, будьте-ласка, если понимаете в этом.
>>1247895 >Так это можно сделать и в языках высокого уровня. Нет, там всё сделано за тебя уже. Взять тот же оператор in в Питоне, встроенные словари и множества. Реализовывать их самостоятельно там -- какое-то извращение. Прикол именно в том, что Си близок к реальной работе компьютера, то есть ты пишешь код, и примерно понимаешь, как он исполняется.
Как по-вашему, походит ли алгоритм распределённого консенсуса Raft для финансовой системы типа бухгалтерской книги с двойной записью с высоким соотношением операций записи к операциям чтения (много пишем, мало читаем)? https://raft.github.io
>>1248129 Можно. 1. Но у Паскаля более своеобразный синтаксис, а большинство языков похожи на Си, включая С++, для которого Си -- чуть ли не подмножество языка. 2. Паскаль нигде не применяется, у Си есть своя ниша -- встроенные системы, например. Плюс операционные системы, компиляторы, интерпретаторы (да и вообще любой серьёзный софт) как правило написаны на Си (либо на С++).
>>1248174 1. В контексте нашего обсуждения синтаксис C ничего не значит. Чтобы изучить синтаксис Java или C#, не нужно изучать сам C. 2. Все верно написал, да только для того, чтобы писать/читать сишный код операционок, компиляторов и интерпретаторов, нужно основательно изучить C, а не просто ознакомляться с ним. Ну серьезно, даже после чтения K&R не получится разобраться в трехстрочных хаках в коде линукса или хитростях кода GCC. Единственное практическое применение сишки при знании его в малом объеме вижу только в переписывании на нем медленного кода из питона/шарпа/пхп/что-там-еще-умеет-сишные-функции-вызывать.
>>1248275 >Чтобы изучить синтаксис Java или C#, не нужно изучать сам C. Но после него привычнее будет, чем после Паскаля. Хотя это, конечно, мелочь, согласен. >нужно основательно изучить C, а не просто ознакомляться с ним А что там основательно изучать-то? Язык то простой как пробка не считая всякой ерунды типа ++i + i++. Это тебе не плюсы с виртуальными деструкторами при множественном наследовании. Правда, конечно, для компиляторов и ОС нужно кучу теории знать, да и вообще это огромные монстроузные системы, где без 100 грамм не разберёшь, но именно синтаксис там не то чтобы особо сложный.
>>1213559 (OP) Чтобы заниматься настоящим cs нужно хорошее образование - мехмат/вмк мгу, мфти, вшэ, спбгу. Какой смысл в cs, если ты не умеешь даже в базовую математику?
>>1258473 Ну хуй знает. Я два года ходил на матмех и один хер приходилось учиться самому после прослушанных лекций, по совершенно другим материалам. И вообще, когда учишься сам, сам же и решаешь, когда, чего и сколько ботать, а с преподами ты ботаешь то, тогда и столько, как предложат преподы.
>>1259655 Двачую этого. Я на лекциях по математике всё время хуйи пинал и с друзьями пиздел. Профессор был старенький и увлекать не умел. Читал лекцию безвкусно. Пришлось самому всё учить.
>>1259655 Ещё добавлю, что литературы нормальной на русском языке сегодня найти очень тяжело, а самая годная лит-ра совестких времён уже морально устарела
Какая-то печальная у вас шапка. Иди в гугол, на ютаб, на курсеру, нам похуй кароч))) Так что упарывать-то, ебанарот? Что веб-макаке с нулевыми знаниями математики можно почитать про алгоритмы?
>>1263968 Не хочу в ряды, хочу видеокурсов пятиминутных на ютубе посмотреть, чтоб не обосраться, когда мне какой-нибудь дебилоид на собеседовании предложит пузырьковую сортировку на бумажке нарисовать.
Чувак, Дмитрий Письменный - это и есть такой даун-френдли талмуд для даунов,суть которого - чтобы дауны после первой сессии в армейку не поехали дружным строем, ниасилив/проебав лекции в универе/задачник демидовича.
>>1264002 Ну ладно, выглядит многообещающее, спасибо. Только вот нахуя мне дифуры, аналитическая геометрия и вообще добрая половина этой книги, если я просто хочу алгоритмы без регистрации и смс?
>>1263960 Адитья Бхаргава "Грокаем алгоритмы" -- объясняет основные алгоритмы без матана с нуля
По математике советую в ютубе посмотреть тематические видео на канале 3blue1brown. Там лампово и визуально объясняются основы лин. алгебры и фун. анализа (и много еще чего). Для меня канал стал прямо открытием года. Нигде не видел такого доходчивого и приятного(!) объяснения математики.
>>1223712 Так а бесплатные курсы гарвардов и прочих митов для чего? Вот тебе академическое обучение в форме самообразования. Скажут что, где, и почему искать, прямо как ты любишь, только с возможностью просиживать штаны не в тесных пыльных аудиториях за бабло, а дома под поединком забесплатно.
>>1269202 Просто бери любую годную литературу по сетям, в самом браузере нет ничего особенного. Но если так интересно, посмотри на исходники хромиума, к примеру.
>>1269311 1) В компьютерных сетях много оптоволокна и низкого уровня 2) Я пытаюсь полезть в исходники фаерфокса. Сложно очень, но интересно. Думал есть ли чё почитать про то, как вообще должно быть.
Браузер - очень сложный софт. Где-то не далеко от ОС и компилятора
>>1270497 Во-первых, системное, сетевое погромирование на С/С++. Во-вторых, потом с чисметами мб научные расчёты, многопоток. В-третьих, в пунктах же вообще мастхэв для уважающего себя человека, в вузах нормальных разве не так читают? Просто посмотрел, каково учить алгоритмы без дискретки - невозможно.
Здравствуй, умный Анон. Я пришел к тебе за помощью. Есть одна задача, и мне нужно ее решить. Я не прошу решения, только совета, куда копать. Звучит сама задача следущим образом: есть допустим 4 ящика и 3 типа шаров (красные зеленые и синие). Красных шаров 10, синих 15, зеленых 19. Нужно все эти шары разложить в ящики таким образом, чтобы в каждом ящике оказалось одинаковое количество шаров. Но есть условия. Синие могут лежать только в первом и третьем ящике, зеленые во втором, третьем и четвертом, красные в любом, но если шар может лежать в ящике, то в ящике в результате должен быть хотя бы 1 шар разрешенного типа.
Я пытался применить симплекс метод, прогнать несколько вариантов на сайтах (потому что величины могут быть лубыми, как и условия), прежде чем писать свой код, и алгоритм зацикливается и не выдает нужный результат. Соответственно вопрос, как решать эту задачу, в какую область математики копать? Линейное программированте, дискретная оптимизация? Или еще куда?
>>1275395 Самый простой способ это тупо перебрать. Задача, судя по всему, np-полная, так что вперед, читай, как они решаются: Задачи комбинаторной оптимизации можно решить с помощью методов дискретного программирования. Одними из основных методов решения задач дискретного программирования являются метод отсечения[1], метод ветвей и границ[2] и динамическое программирование[3].
Если прямо страсть как охота заюзать внешний солвер, то, просто линейного солвера будет недостаточно, так как задача дискретная, дискретного линейного солвера, внезапно, тоже, так как условие "в каждом ящике оказалось одинаковое количество шаров" нелинейное (остальные легко расписать в виде матриц Ax<b, Aeq x=beq, l<x<u, но вот это - никак, вроде бы). Его можно свести к тому, что число (шаров в 1-м ящке - число шаров во 2-м ящике)^2 равно нулю, аналогично для любой другой пары ящиков. То есть тебе нужен дискретный квадратичный солвер, aka mixed integer quadratic programming. Типа такой йобы https://github.com/sschnug/pyMIQP
Но сводить ты эту задачу заебешься быстрее, чем напишешь перебор.
>>1275403 Спасибо большое, этого я и боялся. Но я описал задачу, похожую на мою в формате ящики/шары для простоты. А что, если в реальной задаче можно пренебречь целочисленной составляющей (я этого не хочу делать и буду изучать все, что ты мне посоветовал). Например, количество шаров изначально получено с погрешностью и можно решить задачу как линейную, а потом просто округлить?
С таким упрощением у меня получилось использовать симплекс-метод, но разброс "шаров" одного типа по разным коробка получился слишком большим
>>1275705 Я пока еще не знаю, но почитав теорию пришел к выводы, что надо использовать метод ветвей и границ. Надо только придумать функцию ветвления и нижнюю границу. Думаю для первого спускаться по каждой переменной, а для нижней границы использовать частную производную целевой функции. Не знаю, на сколько это правильно, если честно.
Мне тут на собесе на джава интерна сказали, что без твёрдых знаний и понимания структур данных мне пока у них делать нехуй, попробуй позже. Посоветуйте литературу, ресурсы, статьи чтоб я пришёл и они охуели.
Привет, анон. Может кто помочь, описать алгоритм действия b+ дерева, я вроде вник в то что оно представляет из себя, но не могу код написать нормально, всегда выходит какая то хуета, я не понимаю как это реализовывать.
Анон, есть такое метод для решения задач квадратичного программирования, называется Active Set Method. А кто-нибудь знает, как это звучит по-русски? При поиске "метод активного набора" выдает в основном хуйню
Посоветуйте что-нибудь на тему проектирования ПО, типа там функциональная модель/композиция/декомпозиция. Но чтобы без воды и вкратце, чтобы иметь представления о этой теме в общем.
Реквестирую годных материалов по data science для IT-быдла. На курсеру уже сходил, и чот я ебал плотить далары за материал такого качества. Всякие курсы MIT за полтора косаря с edx может и пиздатые, но это уже для состоявшихся погромистов с зряплатой от 100к в год. Да, очень желательно чтобы это был текст в котором работает поиск, ну или в крайнем случае достаточно информативные видео чтобы не засыпать под них.
Ядро ОС манипулирует процессором, загружая его очередностью задач(многозадачностью). В случаи с многоядерными цп гомогенной структуры - 1 исполняемый процесс делится на потоки в его ядрах, позволяя процессу выполнятся быстрее, но очередность в переключение процессов в определенный квант времени сохраняется.
В ГЕТЕРОГЕННЫХ многоядерных цп, процессы вместо единой очередности, разделяются между ядрами, по ядру на каждый процесс.
>>1213559 (OP) Привет, анон. Что можешь сказать по поводу информационной безопасности в веб сфере, есть ли какие-то книги по этой теме, которые стоит прочесть, или курсы, которые введут в курс дела?
Сап, двач. Завтра экзамен по каким-то структурам и алгоритмам обработки данных. Открываю первый билет, смотрю: 1.Понятие «структура данных». (...хуета…) -Понятия интерфейс, реализация, модуль. И я что-то не всасываю, что это может быть за модуль структуры данных, блясуканахуй.
Я фронтендер без CS-бэкграунда (пришёл из биофизики). Прогаю на жаваскрипте достаточно хорошо, но хочу уйти в system programming. Не хватает знаний низкоуровнего CS
Посоветуйте что-нибудь, чтобы глубже понимать, в какие команды ассемблера компиляторы (скажем, gcc) преобразуют исходный код, какие оптимизации компилятор производит, как работают branch prediction и loop unrolling. Интересуют языки C/C++/Rust и ассемблер
Я не очень умный. Обьясните пожалуйста, почему решето эратосфена с пикрл так хуево работает. Вроде, оно должно делать столько же итераций, но оно работает в 100500 раз медленнее си. Алсо, как хаскель борется с переполнением стэка? Я запускал эту хуйню даже на бескрнечном цикле, но никаких ошибок не было.
>>1339590 Я бы советовал теорию, но 25 летний сеньор в моей конторе, а по совместительству аспирант-математик говорит, что книжки хуета, обучаешься только делая что-то.
>>1339590 Без теории очень туго, т.к. без основ даже не догадаешься, как изобрести велосипед. Конечно, можно всегда уйти во фронтенд. Но хочешь ли ты всю жизнь клепать сайты? Синдром замозванца быстро сожрёт тебя с головой. Надо комбинировать и то, и другое. Читать книжки, особенно, я считаю, надо сосредоточиться на алгоритмах и структурах данных. Хорошо это позволяет тренировать спортивное программирование. Да, надо мозги напрячь, но задачки позволят видеть применение тех или иных алго дальше их типичных use-case. Никто не требует брать топы тимуса и быть гроссмейстером на кф. В качестве практики, можно написать свою бд с разными структурами, алго, оптимизациями для разных видов запросов. Можно написать свой текстовый редактор - там целая наука, недавно на хабре была статья про редактор jetbrains. Делать всё, что интересно: нейронки, машинное зрение, блокчейн и т.д. Главное - не бояться трудностей.
>>1349702 >>1349715 Да, лист - это тоже поддерево из одной вершины. Для каждого поддерева можно через dfs от корня посчитать. Для каждой вершины храним флаг, является ли она корнем univalue subtree. Это значение легко поддерживать для каждой вершины: данная вершина не univalue, если хотя бы один из её потомков не univalue. Если оба univalue, то надо проверить, совпадают ли у них значения. Рекомендую на бумажке разобраться.
>>1361061 Смотря чего хочешь этим добиться, я решал задачки много лет, в конце концов все таки стал «красным» в рейтинге, цель жизни, лол. Но в гугл не взяли, в амазон тоже, ну с другой стороны зарабатываю около $15k фрилансом, может эти задачки и помогли как-то.
Двач, я понимаю, что cs учишь в течении всей жизни, но сколько надо приблизительно время чтобы стать уверенным пользователем алгоритмов и структур данных. Стоит ли учить(практиковать) все одним курсом(где то ~3месяца?)?Или смешивать с изучением ЯПов и технологий, чередуя?(год? я хз...) Пишите, кто сколько учил, учит или что еще
Ребята. Всю жизнь кодил на php, потом на js: react node вся хуйня (пожалуйста, не кидайте говном). Были моменты жизни (т.е. законченные небольшие проекты) с python, C# и даже с C и asm в начале пути. Неожиданно захотел сменить унизительную должность уеб-программиста на стильного, модного Data Scientist-иста. В основном ради большего кол-ва нолей в ЗП. Так вот подойдет ли подобный курс для этого, чтобы стартануть в качестве джуна: skillfactory.ru/data-scientist ? Обещают за год и 120к рублей, сделают из уеб-макаки вот это существо: Специализация Data Scientist. Освой профессию Data Scientist с нуля за 12 месяцев. Вы пройдете полный цикл обучения, начиная с изучения языка Python для анализа данных, классическое машинное обучение и, наконец, самое востребованное направление в области машинного обучения - нейросети и deep learning.
Господа, что можете посоветовать из Computer Science литературы именно в книжном варианте, т.е то что было бы не очень удобно читать на эл.читалке и поэтому лучше приобрести книжную версию? Из последнего читал на экране монитора - Грокаем алгоритмы, в принципе терпимо, но на эл.читалке это был бы ад из-за вставок с кодом.
>>1365680 тебе уже ответили в другом треде, но я ещё добавлю, что имо любые курсы которые просят деньги, вообще любые, и не дают котирующуюся бумажку (нужный тебе диплом или сертификат) - строго нахуй, научиться можно бесплатно и все равно большую часть сам рыть будешь
>>1365851 Поддерживаю. Ну конечно можно платить за какие-либо курсы чисто из-за того что тебе отсортировали инфу и ты не проебывал время на ее поиск и адаптацию, а также если "обучающая" сторона предоставляет какую-либо площадку для обучения, например как делают некоторые популярные проекты - встроенная IDE с кодом или крутые тесты. За это еще можно заплатить какую-то небольшую сумму (не более 2-3к в месяц), но 120к хуй знает за что это перебор.
Яндекс сейчас той же хуйней начал заниматься, только там около 80к за курс и вроде по окончанию какие-то профиты вроде приема на работку.
>>1213559 (OP) Открываю Скиену, дохожу до первых заданий, прорешиваю пару штук а на остальных впадаю в ступор и закрываю книгу. Хотя теорию понимаю, в принципе. Видать математическое мышление у меня напрочь отсутствует.
В первой же главе пример задания: Реализуйте два эвристических алгоритма решения задачи коммивояжера из раздела. Какой из них выдает на практике более качественные решения? Можете ли вы предложить эвристический алгоритм, работающий лучше любого из них?
>>1365969 >И как мне выучить алгоритмы? Нахуй тебе это вообще нужно - стать профессиональным разработчиком алгоритмов решил? Надо было для этого родиться лет пятьдесят назад. Если хочешь в говнояндекс пролезть то просто читай-разбирай задачки которые они постоянно на швабре и в своих бложиках выкладывают. Это самый эффективный путь, буквально на несколько порядков чем это битье головой в стену, инфа соточка.
>>1366003 В яндекс/гугл хотел бы, но это не первостепенная цель. Больше всего для себя хочу, что бы не чувствовать себя унтерком. А у меня фрустрации из-за этого. Гуманитарную хуйню я легко понимаю, с детства тяга к компьютерам, в целом интеллект выше среднего, но алгоритмы меня останавливают и как бы говорят: "не, дружок, ты даун, иди работай клерком, пиши круды за 100к и не выебывайся".
>>1366030 Признать - легче всего. Это самый последний вариант. Я лучше выпилюсь, если я окончательно пойму, что вот он, мой порог, дальше не суйся. И в кого я такой максималист? При этом, мне уже далеко не 16 лет и это не юношеский максимализм. Блять, буду сидеть над алгоритмами сутками, но выдрочу их. В пизду вас, с такими советами.
>>1366009 >Гуманитарную хуйню я легко понимаю Ну-ну. Вас таких весь интернет. А как ответственно речь держать тематическую, так вся страна в дебилах, не имеющих представления о специфике "гуманитарной" области.
>>1365850 Introduction to algorithms Крутая книга, от ублюдков из MIT, нужна матеша, хотя там есть овервью по нужной математике. Skiena Algorithm Design Manual, не такая серьезная как первая, но более прикладная, профессор скиена подгонит тебе по несколько жизненных кул стори в каждой главе.
>>1366138 Мань, ну давай, поясни мне за алгоритмы. Тут каждый интеллекутал, который и сицп за день читает и кнута осиливает, а по факту нихуя подобного.
>>1213559 (OP) Хуй знает где ваш нейротред. Пояните, сейчас вообще есть готовые либы или что-нибудь для вычленения текста из видео потока в реальном времени? Типа брать кучу фреймов за секунду, находить в них осмысленный текст и всё это более менее быстро? Такое уже возможно в тукей найнтин или надо самому писать? (== невозможно, т.к. мама всегда говорила, что я дебил). Я знаю такое гугл транслейт делает, но эти что хотят, то и делают, а я обычный лох с улицы, но этот функционал мне и нужен.
> без CS-бэкграунда > какие оптимизации компилятор производит > branch prediction
Воу-воу.
Если очень хочется, читай книгу красного дракона (ахо, ульман итд) и http://www.csapp.cs.cmu.edu, но лучше не лезть в это дерьмо. Скорее всего у тебя пробелы в базе не там. И скорее всего они сходу окажутся тебе не по зубам, там нужно много свободного времени и пресловутая база. Алгоритмы, оси, сети, дискретка, архитектура (железок) -- примерное представление об этих областях отличает выпускника вуза от самоучки. Судя по тому, что тебя тянет к железу, возможно стоит глянуть Таненбаума про архитектуру. Если сложно -- то сначала книгу про код пецхольда, которую тут хвалили (совершенно заслуженно).
А из того, что ты перечислил, я бы сейчас ставил на rust. К ним реально вписаться на волне хайпа. Там у тебя преимущество в том, что rust толком никто не знает, все одинаковые нубы по сути (просто некоторые с образованием). И шрамов от пойнтеров не останется. И даже если не пойдет как работа, границы сознания немного расширит. У них там есть живое англоязычное irc если что.
Такой вопрос - хочу сделать Educational/Demo прогу с GUI, user-friendly. В аппе нужно делать быстрое перемножение матрицы на матрицу. Понятно, что для фаст перфоманса нужно юзать библиотеки типа BLAS. Но так как моя цель не HPC, и прога больше демонстрационная, я хочу написать кастом код, пускай не такой производительный, но который учтет размер кэша (L1,L2,L3), разобъет по блокам, и тому подобное. Где про это можно доступно почитать? Такой же вопрос, но уже про Cuda GPUs.
>>1373289 В чем проблема поставить пакет, с которым блас идет в комплекте? Это быстрее чем писать свой велосипед. А так самый простой из велосипедов: транспонируешь правую матрицу и компилируешь -ffast-math.
Выручайте, товарищи компьютерные ученые, жопа горит, не знаю к кому обратиться! В шапке советуется книга CLRS, вот и пишу сюда. Осиливаю, значит, эту вещь, дохожу до problem 9-3 и срываю голос нахуй! Вот онлайн PDF, стр.218 по навигации, 195 по печати: http://web.karabuk.edu.tr/hakankutucu/CME222/MIT[1].Press.Introduction.to.Algorithms.2nd.Edition.eBook-TLFeBOOK.pdf сам иду по 3-му изданию из Тора, но для блядской problem 9-3 это не важно. Так вот, поломал я голову денек, другой, наконец сдался, открыл solutions и... НИХУЯ НЕ ПОНЯТНО!!! http://sites.math.rutgers.edu/~ajl213/CLRS/Ch9.pdf (стр.6) А теперь поясняю. Суть задачи в том, чтоб найти i-й по возрастанию элемент в неотсортированном массиве. Общий метод понятен: берем рандомный элемент, грубо раскидываем влево все что меньше, вправо все что больше, дальше ищем только в одной из частей. Но вот тут книжка предлагает охуительную оптимизацию, мол, если i < n/2, то мы можем тупо сравнить n/2 пары и дальше искать только среди n/2 меньших из каждой пары. Но это ж бред. Взяли массив 2 3 5 8 10 1 4 6 7 9, распидорили пары a[1]-a[6], a[2]-a[7], ..., a[5], a[10], дальше в 1 3 5 7 9 2 4 6 8 10 нашли наш 4-й (4 < 10/2 ага) элемент среди 1 3 5 7 9, получили 7 и что дальше? Ведь это ж нихуя не ответ. Постановка задачи в основной книге дает больше подсказок, чем предоставленное решение, хотя бы этим n/2 + Ui(n/2) + T(2i) Но вот какие именно загадочные 2i (в моем примере 8) элементов я должен скормить обычному алгоритму, и как сопоставить результат с моей ублюдочной 7-кой, я в душе не ебу.
>>1394565 вот блин, так всегда. Могу часами бомбить, но стоит запостить, и мозг включается. По ходу, при каждом сравнении-свапе вместо с элементом надо таскать всю его пару, а с каждой парой - пару пар и т.д. от глубины рекурсии. Сравниваем меньшие элементы из групп, а перемещаем целые группы. Размер группы - параметр функции, который удваивается при каждом рекурсивном вызове. В ключевые моменты стандратная процедура, работающая за T(n), будет поддерживать свалку всего, что меньше, слева, и потом можно будет просто пройтись ею же по всем "левым". Верно соображаю?
О да! Эта хуета работает! https://pastebin.com/ajYfd44c Глава осилена, академическая инвестиция в светлое будущее инженера алгоритмов сделана, сделка с совестью на полсуток в /b/ заключена. Всем спасибо за внимание. так, куда я спрятал свои таблетки...
Сейчас пытаюсь понять алгоритмическую сложность. Есть такие понятия как лучший, средний и худший случаи временной сложности.
Например, алгоритм поиска определённого значения в массиве имеет временную сложность O(n). (1) Для лучшего случая - когда элемени найдётся сразу же в первом элементе массива - временная сложность будет O(1). Для худшего случая O(n).
Получается, что когда называют временную сложность алгоритма, как я это сделал здесь 1, то по дефолту всегда называют худший случай? А как тогда вычисляется средний случай?
>>1394565 у вирта в структурах и алгоритмах прекрасно объяснена эта задача, плюс отличный перевод на русский язык.. быстрее бы понял как работает все это..
>>1403508 Ух ты ж бля, тредик живи. >отличный перевод на русский язык Без ложного хвастовства, научную/техническую литературу уже привык на иглише читать. >быстрее бы понял как работает все это Да я по собственной тупости всасываю, неграмотно сосредоточиваюсь.
>>1403863 Конечно же применяется. Спросишь, в каком месте? А хотя бы в том, где худшее, лучшее и ожидаемое время действия алгоритма - 3 большие разницы. Нет гарантии, что qsort не сожрет n! времени. Но теория вероятности позволяет формализовать понятие взвешенной оценки и увидеть, что при использовании генератора случайных чисел этого не случится в ближайшие стопицот лет, и все останутся довольны expected n∗lgn. Да и не только в оценке временной сложности используется. Существуют рандомизированные алгоритмы, для которых даже не доказуемо 100% исключение ошибочного результата. Но все та же теория вероятности говорит, что сбой процессора от космической радиации случится скорее. В этом разница между чистой математикой и инженерией. Последние слова честно спизжены мною из SICP.
>>1403873 угу, соглашаюсь в кормене, к примеру, для быстрой сортировки сначала сложность рассчитывается интуитивно путем рассуждений в наихудшем и среднем случае, а затем уже повторно рассчитывается математическое ожидание времени работы в обоих случаях
>>1225402 >>1225403 Блядь, у вас тут компьютер саенс или дамский клуб? Какие критерии у вас? Одно лучше другого чем?
AVL: Lookup, insertion, and deletion all take O(log n) time in both the average and worst case R-B: The balancing of the tree is not perfect, but it is good enough to allow it to guarantee searching in O(log n) time, where n is the total number of elements in the tree. The insertion and deletion operations, along with the tree rearrangement and recoloring, are also performed in O(log n) time
>>1270611 Блядь, я охуеваю. 21-й век, а еще кто-то ведет речь о "системном программировании". Что, блядь, это такое? И чем отличается от несистемного программирования? Там алгоритмы какие-то другие? Массивы по диагонали в памяти располагать нужно?
Нахуй тебе дискретка, если ты собираешься калькулятор писать или в рс-232 биты хуярить?
>>1305767 Хахахаха. У меня в бумаге есть. Советское еще издание. На английском есть и пдф. Хули вы пытаетесь учить искуственные языки, не одолев естественных?
>>1275395 У тебя 7 линейный уравнений. (4 ящика, 3 типа шаров) Есть ограничния, которые дают тебе возможность делать неполный перебор. Я бы даже не закладывался на какие-то специальные алгоритмы здесь
Начал читать structured computer organisation Таненбаума. Не могу понять почему уровень ассемблера выше уровня ОС. Буду очень благодарен за объяснение.
>>1219310 Не надо проецировать свою школьную травлю на него. Не получится. Ни у кого в мыслях не возникало что он СТРАННЫЙ. Дударь во-первых ровный пацан. Во-вторых он тупо гений. А ты никто
Потому что уровень ассемблера тоже исполняется в среде ОС и использует апи ОС (например, для доступа к дисковой подсистеме). Но конечно, если ОС просто нет и ты программируешь голове железо, то и такого уровня абстракции уже не будет.
Где нужно больше математики, в big data или в neural network? И что перспективней? На hh в дс вакансий по big data в два раза больше, чем вакансий по нейронкам.
>>1431871 Deep Learning это такая настройка над нейронками с использованием биг дейты. Это практически прикладное использование этих самых больших данных. Причем если смотреть по вакансиям часто это настолько смежное, что разницы нет. Из математики матрицы перемножаешь уже заебись.
>>1432628 >Из математики матрицы перемножаешь уже заебись. так этому в 9-10 классе вроде учат одно из немного, что я из математики помню. А я там по нейронкам статьи посмотрел и формулы страшные увидел.
>>1431871 Нейронки это в основном коннекционистские задачки: видео, изображение, звук, анализ текста как потока сигналов. Короче, нейронки непрерывные и однородные. Бигдата это в основном анализ всяких дампов и результатов парсинга из интернета. Короче говоря, бигдата дискретная и разнородная.
А дальше все зависит от твоих вкусов. Если словосочетание "кредитный скоринг" вызывает у тебя тошноту, вряд ли ты будешь заниматься бигдатой. С нейронками аналогично. Вакасний больше по бигдате ясен перец, потому что какие-никакие банки в рашке еще есть, а вот с дипленинг-стартапами напряженка.
Нахуй вам это говно? Там сука настолько очевидные классические советы и книги что я в ахуе что кто-то платил за это. А эти "мотивирующие" речи как будто писал челик лет 12.
>>1435732 У меня вот такое есть, если нужно могу торрентом ебануть, только вот у меня ip серый, не шарю можно ли при таком раскладе изначальную передачу осуществить. А, ну на крайняк можно ноду вручную добавить.
>>1436488 Чувак забей, планы говно. Автор наебщик, контент по написанию кода пиздил у других ютуберов и был пойман за руку как дешевка. Тем более он сам спизданул, что у него 2 года коммерческой разработки, то есть он даже не сеньор. А ещё у него нет высшего образования, ну это так для кучи
>>1436552 все равно хотелось бы посмотреть,даже если пиздить посмотреть на сборник того что он собрал было бы неплохо мне как новичку.буду все таки очень благодарен если перезальешь
думаю вот над таким вопросом. Много читал литры по психологии, в основном КПТ/Лакан, Фрейд/немного общей психологии. И хотелось бы как-то применить свои знания в программировании. Может кто-то знает как эти две сферы объединить, может быть уже есть какие-то проекты в моделировании. Хз в общем
>>1440481 Можешь рассматреть главу "модульность потоков и модульность объектов" в sicp в контекте психотипов Юнга, мол, функциональщики интроверты, а ооп-программисты экстраверты. Вообще можешь копнуть в стили программистов с точки зрения психологии.
>>1443307 Зависит от области так-то. Кое-где тебе ничего кроме карандаша, листика и ластика ничего не понадобится. Конечно лучше иметь академическую карьеру чтоб этим заниматься нормально, но чисто теоретически ничего не мешает просто изучить все необходимое самостоятельно, консультируясь с людьми кто в теме по сети. Обычно нормальные рецензируемые журналы не пропускают публиками васянов, но если ты что-то стоящее и актуальное будешь предлагать то тебя найдут и зацитируют даже если будешь публиковаться у себя в бложике.
>>1213559 (OP) Ищу кого-нибудь для общения вокруг программирования и матана, обмена ссылками и книгами, а так же для парного программирования. Мои языки C, Python. Считаю что программист из меня так себе. Сферы интересов: Теория игр, теория принятия решений, Управление и оптимизация, многокритериальное принятие решений, Марковские модели, конечные автоматы, теория графов, теория вероятностей, статистические методы, имитационное моделирование, ии и коллективное поведение и проч. [email protected]
Ребят, иду работать в компанию, в которой бик тата и всякие распределенные вычисления. Говорят используют хадуп, hbase, кафка, хэйзелкаст, эластик серч. Короче тонны фреймворков, в которых хуй разберешься без понимания, что вообще таеое бик тата.
Может кто знает какие-нибудь книжки оодны по основам бик тата? Чтоб хотя бы принцип понять. Счас читаю "Big Data. Principles and best practices of scalable real-time data systems". Только хз, достаточно ли будет этой книжки.
>>1443782 Спасибо за ответ. Вот я и думаю, что век новый, информационный, дистанционный. Что такие науки как информатика, математика, лингвистика, экономика и т.д можно и нужно давать людям изучать за стенами университета, самим и тупо аттестовать их окончательным экзаменом
>>1443860 > Ребят, иду работать в компанию, в которой бик тата и всякие распределенные вычисления. Говорят используют хадуп, hbase, кафка, хэйзелкаст, эластик серч. Короче тонны фреймворков, в которых хуй разберешься без понимания, что вообще таеое бик тата.
>>1444166 Спасибо чел! Счас ту прочитаю, потом эту. А потом уж на работе как-нибудь разберусь с биг датой этой (надо только собеседование пройти для начала, лол)
>>1444166 Бля, анон, респектос тебе вообще. Реально заебись книга, намного лучше той, что я читал (та говно). Не думал, что на двачах могут чето годное посоветовать
Пацаны, если поступить в Плешку на спецу "прикладная информатика в экономике" по коду "09.03.03" можно ведь будет продолжить учиться в магистратуре ВШЭ или физтеха по тому же профилю 09 "прикладная информатика" по каким-нибудь спецам типа компьютерных наук и системного программирования?
Призываю системных программистов. Есть ли у вас сейчас работа, что требуется от джунов. Хочу вкатится(не именно с нуля, я уже два года изучаю материал для системщины) в системнщину, что требуют от джунов?
Кто с чего начал изучать CS ? Как не скатится в ботана без грамма практических навыков, чтобы большие дядьки платили хорошие бабки? Прогать и CS нравится.
>>1450811 Системщина не в моде, работу хер найдешь. >>1451349 >Как не скатится в ботана без грамма практических навыков Не волнуйся, у тебя не получится
>>1451421 А чем тогда заниматься, чтобы не работать с бытлокодерами, а то походу все к этому и идет, зачем я тогда основательно изучаю структуры данных, дискретку, ассемблер и тд?
>>1451487 Не работать с макаками не значит не быть макакой, и наоборот. Для первого достаточно уметь вертеть языком, таргетиться на решение не реальных академических или бизнес задач, а задач с собесов (литкод, cracking the coding interview и прочее хайповое говно), чтобы максимально эффективно проходить интервью в топовые конторы с высоким процентным содержанием крутых программистов. Для второго можно дрочить >структуры данных, дискретку, ассемблер и тд но это не гарантирует тебе трудоустройство в топовые места. Такие дела.
>>1451450 С магистратуры лиги плюща или зубодробительных книжек по теории ML от профессоров оттуда же. К сожалению, коммерческий ML (по крайней мере в РФ) примерно так же далек от этого как софтвейр инжиниринг от академического CS. Ну, ты знаешь, как джава в теории это виртуальные машины, крутая имплементация алгоритмов в стандартной либе, state-of-the-art гарбаж коллектор и тд, а джава на практике это очередной круд.
>>1451537 Я имею в виду, есть ли такие сферы в проге, где просто так за год не натаскаешься для работы, а ты бывает у "прогеров" спрашиваю, что необходимо знать для устройства на работу, а мне начинают затирать про всякие фреймворки, что сейчас то модно, то вышло из моды и тд, начинаю спрашивать чуть глубже, по типу, какие алгоритмы, структуры данных используете, они отвечают, а , когда начинаю спрашивать, почему не тут алгоритм, чел тупо не может ничего ответить, спрашиваю про языки, операционки, чел абсолютно нихера не знает, но при этом у него есть работы и сотку он получает. Куда идти, чтобы без таких людей было?
>>1451593 По-моему, тут два варианта: если хочешь работать с крутыми прогерами и над интересной идеей, то это в стартап и без денег особо или идти и тупо работать на фреймворках с хорошей ЗП , но с быдлокодерами. Но опять таки я хз, ещё никогда не работал в принципе)
>>1452415 Шараги для пидорасов, тебе же сказали. Неспособен в самообразование - идёшь на анальную дрессировку, выходишь таким же дебилом, но с дипломом. Нахуй нам дипломированные дебилы?
>>1452619 Если a < 0, то алгоритм работает бесконечно, потому что a * 2 всегда < 0. В противном случае O(log(a)), потому что каждую итерацию a уменьшается в 2 раза. Это если числа целые. А если нет, то теоретически a никогда не достигнет нуля, хотя на практике это зависит от точности представления числа с плавающей точкой.
>>1451593 >а , когда начинаю спрашивать, почему не тут алгоритм, чел тупо не может ничего ответить Скорее всего не он принимает решения, какой алгоритм использовать. А если в его работе алгоритмы не особо важны а так в 90% случаев на сегодняшний день, то какие к нему могут быть претензии? >спрашиваю про языки, операционки, чел абсолютно нихера не знает Ну это часть университетского образования. Он не обязан знать наизусть всего таненбаума, главное лишь иметь хоть какое-то представление о том, что происходит внутри.
>>1451593 >спрашиваю, что необходимо знать для устройства на работу, а мне начинают затирать про всякие фреймворки А что не так? Как ты хочешь сделать что-то серьезное и относительно надежное, если не умеешь пользоваться готовыми вещами? Или хочешь везде писать свои кривые велосипеды?
>>1213559 (OP) >Вместо шапки В шапку лучше добавить материалы по математике на русском языке, в частности есть неплохие лекции по матану и ангему на лектории мфти, также есть курсы на степике (матан, дискретка, алгоритмы и структуры данных). Единственный минус всего - это сложно и вы получите мало практики.
Если кто желает ликбез в области базовых математических понятий, рекомендую курс "Дискретные структуры" на степике, там оче годно чел из мфти простыми словами рассказывает про множества, основы комбинаторики, графы, и.т.д.
Есть одно дерево, левел ордер такой, например: 1 2 3 4 5 6 В каждой ноде помимо значения есть указатель на следующую ноду, нужно проставить эти указатели, не используя очередь, то есть в этом примере будет так: 1 -> 2 -> 3 -> 4 -> 5 -> 6 Заебался уже, помогайте.
Некогда не имел дело с линуксом, сейчас необходимо установить на компьютер компании, все что от него нужно - записывать видео с веб камеры и отправлять на облако. В идеале чтоб был привычный рабочий стол. Какой дистрибутив лучше подойдет для новичка и данной работы?
тредик живи С чего начать небыдлокодерский путь в Украине? Интересно пиздец, но цели смутные какие-то. Жестко клинит на Сишечке, ньюфаг в математике, знаком с ASM, читаю Таненбаума, хз че еще рассказать. Алсо, в шапке говорится, что без математики недоступны такие книги, как kniga, kniga, CLRS, ... А я за CLRS как раз взялся еще несколько взялся, методично осилил почти 2 раздела, забуксовал на теоретических задачках по хеш-таблицам. Ничего нереального, но как-то уж очень больно это все решать без математического бэкграунда. Там в конце еще дается математический аппарат, необходимый для осиливания основной книги. Стоит отдельным курсом по этому аппендиксу пройтись, или лучше уже какой-нибудь MCS взять и со вкусом посидеть? Ну же, аноны, вдохновите меня. Я хоть и распиздяй, но в быдлокодерство пуще огня противлюсь идти.
>>1429706 Пушто syscall. Ты не можешь просто взять и написать код с прямыми инструкциями взаимодействия с периферией, собрать его и запустить в юзерспейсе. Там операционка (не без помощи железа) перехватывает контроль и свои уполномоченные процедуры запускает на основе того, какие аргументы ты в основных регистрах оставил. >>1429926 Какую же лютую хуету ты написал, святой кринж... >>1430025 Взвизгнул максимально, спасибо анон.
>>1429706 Асм "обращается" к оси так же, как и C, потому что это не бинарник, а все еще слой абстракции над нулями и единицами. Но т.к. ось тоже надо на чем то писать, этот слой абстракции может быть ниже уровня оси. >>1429173 Хз, я только второе читал, вроде ок.
Программач, посоветуй почитать что-нибудь годное по аппаратной части с низов, но только на русском языке? Помимо уже упомянутых здесь Петцольда как-то все слегка поверхностно и отвлеченно от реальности и Танненбаума на русский переведено 6 издание суперхуёво, додумывать за долбоеба-переводчика приходится половину в сложных местах. английский учу, не надо про это.
>>1476441 Алгоритмы это ладно, пройди, операционки нахуй не нужны, для мл надо знать питон нормально, сам cs для ml не особо нужен, скорее надо как раз повторить тупую матешу с функциями многих переменных, векторами, свертками, статистику, теорвер. Если хочешь именно CS для ml, а не для общего развития, то обрати внимание на матлогику, в частности нечеткую логику и нечеткий вывод. И вообще вкатывайся быстрее в ml, а то пока пройдешь все эти подготовительные курсы станешь безработным аспирантом
Такой вопрос, уважаемые компьютерные ученые... Не хватает фантазии для решения упражнений Кнута. Что конкретно делать, чтоб развить эту самую фантазию?
На самом деле, в сканах третьего издания первого томика, которые я смог нагуглить, не достает xv-xvii, где как раз обозначения упражнений описаны, чтоб по ним определять, стоит ли дрочить сегодня, или контент на любителя - вернусь, как повзрослею. Где-то нарыл голый текст книги с тем самым утерянным наставлением высшей цивилизации.
>>1213559 (OP) Привет, двач. Есть у кого на примете годный курс лекций по алгоритмам? Знаю, что библией алгоритмизации считается книга Кормэна(потом по нисходящей идут Дасгупта и Бхагарва, тоже знаю) и мне нравится её полнота, однако, формальный язык очень и очень отталкивает, не способствуя пониманию. Да и вообще, формат лекций мне как-то ближе, нежели просто чтение книги. В общем, какие требования? Полнота(речь не об N-полноте, лол) Кормэна в сочетании с интересным, не сухоформально рассказывающим преподом. А, да, и чтобы на русском(знаю, что охуел). Подскажите чего по сабжу?
>>1213559 (OP) Я очень уважаю Computer Science, но >Q: Зачем мне надо изучать computer science? >A: Для того чтобы стать не быдлокодером, а настоящим программистом. 95% программистов программируют на языках высокого уровня и скриптах и им эта наука не нужна. Ну как, нужна: им достаточно знать, что язык компилируется в машинные коды, а машинные коды выполняются последовательно. Знание языков низкого уровня и архитектура процессора может понадобиться только тем, кто пишет операционки, драйвера и в embedded.
>>1491804 Я бы не сказал, что знание как работают черные ящики в компуктере делает его небыдлокодером, обычно под "небыдлокодерством" подразумевается следование архитектурным и языковым правилам в какой-то области, набираемое только опытом и код ревью, ну и в ногу себе не стрелять. Если имеется в виду способность быть каким-то архитектором-переархитектором, который постоянно выдумывает велосипеды лучше имеющихся на рынке, то для такого человека конечно нужны именно знания компьютер саенс, но скорее базовые и абстрактные вроде алгоритмов + серьезные практические знания в его предметной области. Если низкоуровщина нужна, то это уже его предметная область, а не что-то базовое, общее и нужное всем
>>1491804 >Я очень уважаю Computer Science >Знание языков низкого уровня и архитектура процессора Ты не очень умный, и любишь поговорить о том, чего совсем не понимаешь, да?
>>1484260 Мне тоже Кормэн не зашел. Все разжевано, как для гуманитариев, но упражнения больно охуевшие, и приходится курить аппендикс по математике, КОТОРЫЙ блядь, в свою очередь, представляет из себя люто сумбурную выкладку с такими же охуевшими упражнениями. Короче, есть над чем помедитировать без дополнительной подготовки. А Кнут заебись. Изящный слог, методичная подача идей, вот это все... Пообмазывался началом, и аж захотелось поосновательней вкатиться - взял Concrete Mathematics (развернутый вариант первого раздела). Не исключено ниасилил.жпг, но пока все нравится.
>>1213559 (OP) Какой даун вообще придумал использовать этот хипстерский термин computer science. Вообще-то по русски это информатика называется. Пора бы уже вспомнить родной язык, а то каких-то неграмотных индусов напоминаете.
Аноны, помогите советом. Я сейчас работаю джуном( после курсов повезло устроиться) в одной компании, опыта в программировании кот наплакал. Параллельно учусь в универе, не на IT специальности. Хочу изучить тему CS максимально глубоко( в идеале настолько, что можно было бы заниматься нОукой и писать статейки), есть ли какие-нибудь бесплатные курсы или что-нибудь в этом роде, которые охватывают ПОЛНОСТЬЮ часы и материалы, необходимые для 4х лет обучения на какой-ниюудь "Программной инженерии" , у нас, в России. Если есть аналоги на английском, то тоже скидывайте. А если этот курс будет еще и с домашкой, то будет самый шик. Да, я прочитал шапку, да я поискал на курсере, степике, интуите.
>>1495699 Запоминай, что говорят, гугли и изучай дома. Просто брать и читать все подряд не имеет смысла. Ну и база какая-то должна быть, ты что-то должен знать про процы, что-то про оси, что-то про компиляторы, что-то про алгоритмы и структуры данных. Найди по одной книге по каждой тематике с норм отзывами на амазоне, они все плюс-минус одинаковые. Прям мастхэв из всего это только dragon book по компиляторам. Одного курса, который сделает тебя спецом по CS, чтобы тебе потом не пришлось учить что-то новое, ты все равно не найдешь, поэтому лучше начать с этого, а потом копать куда интереснее.
Я не знаю, куда обращаться, потому итт: Помогите студентоте с сортировками связного списка. Вот есть двусвязный список. Если сортировать пузырьком, то вопросов-то вообщем никаких, так как рассматриваемые элементы в каждой итерации являются соседними. Но есть смысл пытаться сортировать такие списки посредстовом апгрейженых алгоритмов вроде Шелла или квик-сорта? В случае Шелла, придётся постоянно передвигать поинтеры по списку, что при больших размерах имхо займёт может занимать дохуя времени. С быстрой - ещё дополнительно придётся выделять память после каждого прохода под текущий обрабатывемый список и при этом удалять старый. Я правильно понимаю, что с подобными структурами отдельная история со своими оценками производительностями, отличными от обычных массивов?
>>1499730 Алсо, проиграл с самой идеи >придётся постоянно передвигать поинтеры по списку юзать подход, максимально жадный до сравнений, но невъебенно щедрый до разыменования одних и тех же указателей овердохуя раз
Сап. Прохожу курс, встретил пикрелейтед слайд. Не могу понять, почему в 2, 3 и 4 правилах используются какие-то странные равенства? Почему n = O(n^2)? И все остальные тоже не понел. Объясните плез.
>>1515779 Книга для тех, кто хочет научиться анализировать алгоритмы. Ну и сами алгоритмы там есть. Кто не шарит в математике - могут читать книги для макак - там нет страшных формул. Копируешь из книги, вставляешь, все работает.
>>1515779 Я помню читал эту книгу в 14 лет и понимал где-то 20%. Переписал алгоритм LUP-разложения а он и не работал, я был расстроен. Теперь то конечно многие вещи очевидными стали, но тогда было реально тяжело вкатиться сразу в эту книгу.
>>1515784 >страшные формулы Да ради Бога. Готов мешками носить, в ванную высыпать и обмазываться. Ясен хуй, что алгоритмы имеет смысл изучать только комплексно, а не код красно-черного дерева с e-maxx.ru скопипастить. Проблема книги вовсе не в этом...
>>1515814 Алгоритмы мало смысла изучать. Хочешь применить свои мозги - смотри в сторону ML и матстата, хэш-функций, компьютерной графики. А алгоритмы для стандартных контейнеров уже написаны и новые не нужны. Так, поизучать, чтобы изучить разные практики программирования, но не более того.
>>1515779 Я понял, что меня бесит в одних книгах и тащит в других. Для мыслящего человека, когда что-то не понятно сходу, естественнее остановиться и подумать, а не ускоряться за подробным объяснением дальше по тексту. Хорошая книга должна быть составлена так, чтоб работал первый вариант, иначе выходит какое-то макаковоспитательство. Мозг расслабляется и можно реально что-то упустить + удовольствия мало, нет стимула продолжать. Когда сам допер, возникает кайф, а когда ты заранее знаешь, что нихуя не поймешь, пока дядя автор тебе не разжует, то чем дальше, тем с более кислой миной воспринимаешь всю эту чуждую хуету.
>>1515827 > уже написаны и новые не нужны > для стандартных контейнеров Для тебя алгоритмы это почти равно структуры данных или мне показалось? Ты же понимаешь что бывают алгоритмы которые обобщить вообще довольно сложно (невозможно)? Простой пример - динамическое программирование Так хэш функции тоже для всего уже написаны и новые не нужны, как и библиотеки для МЛ
>>1519022 Обсуждается книга Кормена, в которой на то что ты пишешь тянет разве что первая глава. Остальное там это именно что изучение стандартной либы. >динамическое программирование Редкая хуйня, часто упоминаемая только из-за олимпиадников. Об этом я и написал в контексте практик программирования - можно поизучать, но не более того.
Тред жив чтоле у вас? Поясните за пикрил, че за ранг, откуда у него ноги растут. Главным образом интересует есть ли у него какая-то математическая подоплека, или это просто вспомогательный приемчик. Ну или, возможно, есть какие-то обобщения этой темы.
Допустим есть сервер на debian10, на нём стоит опенвпн. У меня есть секретный ключ TLS сервера, но openvpn юзает также ключи DH, которые рандомно генерятся в оперативке при каждой сессии и никуда не записываются. Если бы не ключи DH - я бы мог через tshark сниффить трафик и затем с помощью ключа сервера его расшифровать в wireshark. Вопрос - как настроить openvpn так, чтобы он стал mitm-vpn?
студент-пидор первокурсник на связи. хочу найти работку летом по специальности, но кажется я не до конца понимаю, кем же я все-таки стану. ну не либы же для веба учить..
Типа, ололо, в стандарте Си описывается виртуальная машина, поэтому мы прогаем под ВИРТУАЛЬНУЮ МАШИНУ, а не под настоящее железо, а значит си НИХУЯ НЕ УЧИТ ТЕБЯ АРХИТЕКСТУРЕ КОМПА.
Умалчивается чудесный момент, что сейчас даже асм заметает кучу всего под ковёр, типа, блядь протокола взаимодействия ядер с памятью через посредство кэша, и проч и проч. При этом, почти все концептуальные вещи, что асм не заметает под ковёр, си тоже не заметает под ковёр, ну, в каком-то смысле
Тут же можно задать вопросы про алгоритмы, да? Так вот, вопрос насчет шифров сложных, наподобие RSA, Эль-Гамаля. Вот возьмём к примеру Эль-Гамаля. Так вот, как он шифрует большой текст? Допустим рассказ. Как он его шифрует? Делит по блокам и шифрует или просто всё в одной куче? Вернее как правильно делать?
правильно - почитать умных дядь, про моды использования криптографических примитивов. если выдумывать самому, сделать что-то взламываемое не легко а оень легко(даже используя разумные примитивы).
>>1599272 >и совковых учебников Тут имеются в виду всякие общие книжки по дискретке с парой страниц "а вот у нас автомат Мили, а вот автомат Мура, ну ты понел". Более глубокая литература всячески приветствуется.
>>1213559 (OP) Кто то может внятно вкрации пояснить почему еще нет GAI, что этому препятствует и тд и тп. Такие можно кинуть ссылку на годную статью на английском.
>>1215824 >>1216099 Правильно ли я понимаю, что этот раздел ("Программирование") - это часть "Computer Science" (а именно - "Computer Engineering")? Так как здесь дохуя тредов с "Applications" (ИИ) и тд, то раздел называется неправильно, и его надо было бы переименовать в "Computer Science". Или запилить новый, чтобы туда перешли все треды про "ИИ" и тд? А тут осталось только Computer Engineering
Аноны поясните за Artificial intelligence (AI) 1) Как далеко продвинулась наука в области ИИ на данный момент ? есть что нибудь круче, чем "умная" кофеварка или контекстная реклама ? 2) Пытается ли кто нибудь создать именно интеллект, а не прикладную хуйню ? 3) Кто вообще этим занимается ? частные фирмы или институты типа MIT и прочие.
Я тупой еблан начал читать таненбаума современные ОС, первая же тема про процессы и потоки, не могу ответить на половину вопросов на эту тему хуево знаю архитектуру пк, неужели надо с нее начинать было
>>1613900 > Как далеко продвинулась наука в области ИИ на данный момент ? Никто не понимает как использовать логику второго порядка и потому из-за появившихся вычислительных мощностей все просто методом тыка пытаются создать что-то, надеюсь что оно само собой выработает что-то подходящее. >есть что нибудь круче, чем "умная" кофеварка или контекстная реклама ? Да. > Пытается ли кто нибудь создать именно интеллект, а не прикладную хуйню ? Да, конечно.
С дивана отвечаю, лучше не слушай. Не представляю что там пробуют местные нерды за закрытыми дверьми.
В общем хочу разобраться в работе компьютерных сетей. Какие-то сложные и замороченные вещи мне не нужны, но в пределах того, как устроено сообщение между серверами в кластере, как работает интернет, хотел бы узнать. Хочу именно основные идеи и протоколы. То, что мне пригодится на работе на позиции дата инженера/дата саентиста. Желательно в видео формате на часик времени (если возможно).
>>1617706 >Никто не понимает как использовать логику второго порядка и потому из-за появившихся вычислительных мощностей все просто методом тыка пытаются создать что-то, надеюсь что оно само собой выработает что-то подходящее.
как ты собираешься логику второго порядка "использовать"? Для неё теорема Гёделя о полноте не работает, хуле там делать?
>>1661123 Ну вот, например, я скажу, что извлекаются одновременно. На самом деле я хз, как оно на самом деле, но я не вижу причин, чтобы было последовательно. Что тебе это даст?
>>1663524 Процессор так то тоже не особо сложный, на уровне вентилей. Придумай архитектуру с вменяемым объёмом и малой латенси, раз всё совсем просто.
Принцип ракетного двигателя тоже максимально простой, но для того чтобы технология не просто заработала, а стала эффективной и пригодной для чего-то большего, чем стенд с демонстрацией принципа работы - нужно не один десяток ежей родить.
Можно ли браться за изучение книг из шапки треда если единственное что у нас в школе делали по информатике в школе это рисовали разную фигню в Word? Стоит ли ознакамливаться со школьными учебниками Полякова или можно сразу браться за книги из шапки?
>>1663810 Это простой процессор несложный. А если добавить всяких оптимизаций: переупорядочивание инструкций, параллельное исполнение назависимых, спекулятивное исполнение, то будет довольно сложно. А ещё чтобы всякие Spectre от таких оптимизаций не возникали...
Крч работяги, я хочу сделать текстовую игру с ии, чтобы ии генерировал стори и отвечал челу на вопросы разные. Я не бачу вообще в чем делать и как подрубить ии, слышал про GPT-2, но не нашел как его подключить куда-то или что-то в этом роде. Если тут есть парни которые в этом разбираются, расскажите пж как делать это в принципе, сначала нужно написать саму текстовую игру, а потом генерировать стори через бота, или как?
>>1644507 Не знаю насчёт существования конкретного алгоритма, но попробую описать то, что сам только что придумал. Начнём с объединения. В общем, выпишем все вершины каждого в порядке возрастания в отдельный массив. Для этого будем при обходе дерева будем идти сначала в левую ветку, затем выписывать вершину, а потом в правую. Затем стандартным способом, как в merge sort, объединим эти массивы. И затем построим обратно новое дерево. Для этого будем рекурсивно делать следующее действие: на каждом шаге берём центральную элемент в списке, как корень текущего поддерева, бьём массив на две части в этой вершине и запускаемся от левой и правой половин. В процессе нужно только правильно красить вершины. С пересечением почти тоже самое, только нужно подкорректировать объединение двух массивов: добавляем элемент в результат только тогда, когда элементы на текущих позициях двух указателей равны и увелечиваем оба указателя одновременно. Любая часть алгоритма работает за O(n) и даже рекурсивная, т.к. каждый шаг отрабатывает за O(1) и в конце каждый элемент бывает рассмотрен. На самом деле, с объединением достаточно весело, если все ключи в первом дереве меньше, чем в правом, то как и любое сбалансированное дерево их можно объединить за O(log n). Есть очень простая, но крутая структура - декартово дерево (декартач, курево, treap и прочие), вершины которой состоят из пар значений (x, y). x - ключ, y - приоритет. Это дерево образует бинарное дерево поиска по x и бинарную кучу по y. В действительности, y - это случайно сгенерированные числа, благодаря чему дерево получается сбалансированным. На практике обычно не используется (хотя по слухам от чуваков, учившихся и работавших с Н. Дуровым, в Telegram очень много данных хранится во вложенных декартачах), т.к. опирается на случайность и ожидаемая высота у него больше, чем у AVL и RB. Но для него есть крутые алгоритмы. Например, его можно объединять амортизированно за O(log ^ 2 n) без выполнения инварианта о ключах. https://codeforces.com/blog/entry/56943 Если в коде нужно часто выполнять эту операцию, то это хороший tradeoff)))
>>1644507 Вероятно есть. Я как истинный программист никогда не читал книг ни по алгоритмам, ни по структурам данных, но вот накидал для обычных деревьев: https://ideone.com/XsREc2 Не вижу причин почему то же самое не сработает для цветного дерева, отличия вроде бы только при добавлении/удалении отдельных элементов из-за автоперебалансировки, что не актуально при пересборке дерева полностью. Могу попробовать переписать без использования вектора на стадии слияния и с цветными листьями, если очень надо.
Мои результаты на картинке (нужно в 329 строке заменить fun(2) на fun(10) и раскомментировать 316227 ниже для более стабильных результатов). Как можно заметить, коэффициент при n почти постоянен (немного повышается из-за того что данные в кеш умещаются всё хуже и хуже, скорее всего), а при nlog(n) снижается. Стандартная же функция set_intersection/set_union из STL коэффициент при n повышает, а при nlog(n) сохраняет. Даже если использовать промежуточный вектор, что довольно странно.
>>1213559 (OP) Такое дело: надо определить дисперсию системы по набору из данных (пример на пикриле) У нас есть набор неких параметров из нескольких независимых исследований. Можно найти дисперсию каждого отдельного параметра, но как найти дисперсию всей системы? Не складывать же их
Здравствуйте. Мой потолок это квадратики и круглишки в питоне, основные понятия типа функций, классов и объектов. Для того, чтобы влиться,так сказать, в вашу сферу, что нужно учить? Идти в какой то язык(например, питон) и смотреть, что можно с ним делать, и так постепенно изучать новое и новое. ИЛИ же большую часть времени уделить comp science (Алгоритмы, базы данных, структуры , типы данных и прочее), не привязываясь к языку (книжки там на каждую тему немаленькие) С одной стороны, если валить все силы в язык и опыт там, то быстрее приду к тому, что смогу быть полезным где-то, но с другой стороны, если я прочитаю все эти книжки умные(мб даже пойму), по идеи, я должен быть более ценным программистом? В общем, помогите структурировать своё обучение, поделитесь опытом.
>>1213559 (OP) Посоветуйте плиз книгу по парадигмам программирования, ооп, структурам и типам данных, паттернам и т.д. Спрашивал в ньюфаго-треде, но там что-то не ответили.
А кто знает прикольные книги связанные с программированием и метаном? Вроде, котики и статистика, изучай {Erlang|Haskell} во имя добра. Как гуглить такие научно-популярно материалы?
>>1687197 Бери любую книгу с название Алгоритмы и структуры данных, потом книгу про паттерны проектирования на своем языке и просто более углубленную книгу про твой язык, где будут раскрыты всякие фишечки, ООП там будет, если язык это поддерживает.
Сяп, утонувший. Существует ли какой-либо нативный механизм сортировки ринг-листа? Ну вот так, чтобы без индексирования, счётчиков, а исключительно по переходам по линкам?
Есть n строк с векторами, как найти среди них пару "наиболее похожих"? Каковы в принципе могут быть критерии этой "похожести"? Слыхал про косинусную меру - ищем косинус угла между ними, однако позвольте, косинус ничего не скажет нам об их длинах...
>>1716498 Я бы обобщил "расстояние Левенштейна" на векторы. Там как раз есть перестановки, вставки и удаления символов что подходит для векторов разной длины. Просто заменить "цену замены" с константы на модуль разницы компонент, или модуль логарифма отношения компонент - в зависимости от природы данных.
В чем разница между CISC и RISC? У первых я так понял больше команд. То есть код скомпилированный для RISC процессора будет значительно длиннее, так как то же самое, что делалось одной командой на CISC займет например 5 команд на RISC? Но при этом я вычитал, что каждая команда RISC процессора выполняется в 5 раз быстрее за счет отсутствия интерпретации. Что это значит?
Вместо шапки:
https://pastebin.com/3xNpju3M
Благословляем тред, чтобы не сгнил.