• Как можно реализовать поиск цикла в однонаправленном списке?

    longclaps
    @longclaps
    class Node(object):
        def __init__(self, value, next_node=None):
            self.next_node = next_node
            self.value = value
    
        def is_circular(self):
            head, visited = self, set()
            while head is not None:
                i = id(head)
                if i in visited:
                    return True
                visited.add(i)
                head = head.next_node
            return False
    Ответ написан
    Комментировать
  • Есть ли формула обратимого преобразования четырёх чисел в одно?

    Adamos
    @Adamos
    Внезапно, объявление struct в С или класса с членами в любом ООП-языке как раз в качестве такой "формулы" и работает. Компьютер хранит несколько "чисел" одним блоком памяти и может обратимо преобразовать этот самый блок в эти самые числа. Без велосипедов.
    Ответ написан
    2 комментария
  • Зачем нужны Solr, Sphinx, и прочие системы поиска?

    @L1ar
    .net / php
    Я так понял, что основная непонятка в том, где поисковый движок берет данные?
    Любой поисковый движок ищет инфу в своих индексах, которые строятся на основе данных, которые мы ему отдали. Очень грубый пример для сфинкса - например, у вас есть база с товарами и надо сделать поиск по названию и описанию. Если делать это средствами БД, то это будет что-то вроде
    select id from products where name like '%search_phrase%' or description like '%search_phrase%'
    (я не беру в расчет спец. средства разных бд для полнотекстового поиска). Ну и сразу понятно, что like будет выполняться адово долго. В итоге на 1 запрос у вас удйет от пары сек и до вечности.
    И тут приходят поисковые движки. На примере сфинкса - скармливаем ему всю инфу о товарах (айди, название, описание). Как именно это делается зависит от типа индекса. Можно указать вообще sql запрос, который выполнит сфинкс, чтобы наполнить свой индекс. Далее он по своим алгоритмам строит индексы, оптимизированные для текстового поиска. И делаем уже выборку через него
    select id from i_products where match('search_phrase')
    (синтаксис примерный). И получаем айдишки найденных продуктов. В данном случае поиск выполняется очень быстро (если индекс правильно настроен) и вместо нескольких секунд получаем несколько миллисекунд.
    Ответ написан
    3 комментария
  • Обладает ли декартово произведение свойством дистрибутивности относительно симметрической разности?

    @immelnikoff
    Изучаю БД
    а) Допустим, что (x, y) ∈ A x (B Δ С). Тогда x ∈ A, а y ∈ B Δ С.
    Пусть y ∈ B \ C. Тогда (x, y) ∈ (A x B) \ (A x C).
    Пусть y ∈ C \ B. Тогда (x, y) ∈ (A x C) \ (A x B).
    Следовательно, (x, y) ∈ (A x B) Δ (A x C).
    A x (B Δ С) ⊂ (A x B) Δ (A x C)
    б) Допустим, что (x, y) ∈ (A x B) Δ (A x C). Тогда x ∈ A, а y ∈ B \ C, либо y ∈ B \ C.
    Следовательно y ∈ B Δ С, а (x, y) ∈ A x (B Δ С).
    (A x B) Δ (A x C) ⊂ A x (B Δ С)
    в) A x (B Δ С) ⊂ (A x B) Δ (A x C) и (A x B) Δ (A x C) ⊂ A x (B Δ С) ⇒ A x (B Δ С) = (A x B) Δ (A x C) (по определению равенства).
    Ответ написан
    1 комментарий
  • Обязательно ли читать книгу по языку/технологии что бы быть тру и продвинутым кодером?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Вы не найдёте ни одного авторитетного программиста с мировой известностью, который бы утверждал, что курсы и видео-уроки лучше книг. Обычно это утверждают либо профаны, оправдывающие своё нежелание читать, либо авторы курсов, делающие деньги на лентяях и глупцах. И я лично за 18 лет в отрасли встретил множество программистов, но ни одного хорошего, выучившегося по курсам и видео-урокам.

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

    К тому же, после достижения профессионального уровня достаточного чтобы называться специалистом, вы обнаружите, что необходимые на этом уровне знания можно почерпнуть только из документации. То есть всё равно придётся читать. Много и часто.

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

    Кроме того, чтение развивает абстрактное мышление - основной инструмент разработчика.
    Ответ написан
    16 комментариев
  • Как асинхронно получить список файлов в директории на Python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Да, единственный. Кроссплатформенной файловой асинхронности не существует, а потому Python её вообще не поддерживает.
    Ответ написан
    Комментировать
  • Какое существует ПО для управления IT-инфраструктурой?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Не может быть одного ПО которое решает все ваши вопросы.
    Управление нагрузкой чего? миграция чего? деплой чего? в мире очень много вещей, которые не могут быть универсальные.

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

    Опять же, вы понаписывали кучу слов, но что они обозначают - вы не знаете.
    Например расскажите что означает "удаленный аудит" или что такое "система мониторинга" в вашем понимании? Можете перечислить КОНКРЕТНЫЕ критерии аудита и список метрик, которые эти системы должны измерять и проверять?
    Ответ написан
    Комментировать
  • Как решить задачу о загоне для скота?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Классически задачи на экстремумы функций решаются через производные:
    100 = 2w + 3l => w = (100 - 3l)/2
    A = w * l = 50l - (3/2)l2
    A' = 50 - 3l = 0
    l = 50/3 = 16.(6)
    A''(50/3) = -3 < 0 => точка максимума
    w = 25

    Но можно и через квадратное уравнение:
    A = 50l - (3/2)l2 = 0
    D = 502
    l1 = (-50 + sqrt(D)) / (2 * (-3/2)) = 0
    l2 = (-50 - sqrt(D)) / (2 * (-3/2)) = 100/3
    Для квадратного уравнения точка экстремума лежит посередине между корнями
    l = (l1 + l2) / 2 = 50/3
    w = 25

    Алгебра, 8-9-10 классы.
    Ответ написан
    1 комментарий
  • Asyncio. Как добавить задачу в запущенный loop?

    MAKAPOH
    @MAKAPOH
    многостаночник
    Если я правильно всё понял то вам должно хватить:

    Идея следующая. Пишем корутину-исполнитель которая из очереди задач на скачивание берёт очередное задание, загружает что требуется, а результат кладёт в другую очередь результатов. С помощью вызова loop.create_task создаём несколько паралельно работающих корутин-исполнителей передав им как параметр очередь с задачами и очередь результатов. Пишем корутину-генератор задач, которая в соответствии с вашим алгоритмом будет наполнять очередь задачами. Как то так, к сожалению сейчас нет времени писать код.
    По теме есть вот такой доклад - Patterns for asyncio applications там описаны несколько вариантов запуска циклов, в том числе в отдельном потоке как вам надо. Дерзайте :)
    Ответ написан
    1 комментарий
  • Как вы читаете незнакомый код?

    Martovitskiy
    @Martovitskiy
    Наткнулся недавно на статью.
    Почему программисты ненавидят работать с чужим кодом?

    Вот представь, что тебе доверили достроить за другим прорабом лабораторию на острове. Ты приходишь на объект, а там кроме недостроенного здания: огромный вентилятор (размером со здание), большой воздушный шар и комната набитая швабрами. Почесав голову, ты разбираешь этот хлам и доделываешь лабораторию. Сдаешь объект ученным, но через 5 минут они выбегают с криком: "УТЕЧКА ЯДОВИТОГО ГАЗА!!!".
    — Как так–то, б..ть! Должно же работать! — в отчаянии кричишь ты и звонишь прошлому прорабу:
    — Вася, у нас ядовитый газ потёк! В чем проблема?
    — Не знаю, должно было все работать. Что–то в проекте менял?

    — Немного, швабры вынес...
    — Швабры потолок держали!
    — Что??? Что, б...ть, извините???
    — Говорю, швабры потолок держали. Над ними цистерны с газом были. Очень тяжелые, пришлось в комнату снизу швабры напихать.

    — Ты хотя бы записку на двери повесил бы, что швабры для держания потолка! У нас тут ядовитый газ течет! Что нам делать?
    — Включай вентилятор. Он сдует газ с острова.
    — Я его, б...ть, демонтировал сразу же!
    — Зачем?
    — Зачем ты построил 120 тонный вентилятор? Ты не мог положить ящик бл...ских ПРОТИВОГАЗОВ?
    — Ящик противогазов искать нужно, а вентилятор у меня с прошлого заказа оставался.

    — Вася, я убрал твой вентилятор! Мы тут задыхаемся!
    — Херли вы тогда там делаете? Садитесь на воздушный шар и у..бывайте!
    Ответ написан
    1 комментарий
  • Как написать функцию пересчета значений одной шкалы в другую?

    LaRN
    @LaRN
    Senior Developer
    Через 3 точки можно провести параболу, тогда не придется работать с диапазонами.
    Посмотрите например интерполяцию Лагранжа.
    https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D...

    Для вашего кейса Y =1250*X*(X+3.8)

    X - Это исходная шкала
    Y - Это новая шкала

    Y(0) = 0
    Y(0.2) = 1000
    Y(1) = 6000
    Ответ написан
    3 комментария
  • Математика для прогаммиста,база 9 классов?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Коротко - для ПРОГРАММИРОВАНИЯ нужна арифметика на уровне корень/степень, перевод между системами счисления, понятие о типах данных, что входит в алгебру в разделе теории множеств чисел(школьный курс ее охватывает), и может еще что-то из мелочи, все это дают в школе.

    Для решения НЕКОТОРЫХ задач (на самом деле достаточно широкого круга задач программиста) вам нужно будет знать уже гораздо больше, например сложность алгоритмов(теория алгоритмов и данных, частный раздел дискретной математики), теория графов (для структур данных чуть сложнее чем табличка в екселе), в модном и перспективном нынче биг дата и дата сайнс, где легко и непринужденно подключается как базовый матанализ, так и теорвер с диффурами, про крипто направление вообще молчу, там вообще половина современного матаппарата наверное используется. Игры в большинстве случаев делаются на готовых движках, но базовую тригонометрию все равно надо будет вспоминать, а местами и интегралы.

    Короче, все что сложнее среднего сайта визитки + бложик + магазин на битриксе или приложения с мемчиками на флаттере - желательно знать чуть больше базового школьного курса, но ничего не мешает загуглить что-то конкретное и выучить самостоятельно, другое дело что базы для этого может не хватить и все равно придется лезть вглубь темы.
    Ответ написан
    4 комментария
  • Существует ли такая зависимость от 2-х аргументов?

    Конструктор:
    • 0 для отрицательных, 1 для положительных: (|x| + x) / 2
    • 1 для отрицательных, 0 для положительных: (|x| - x) / 2


    Итоговая формула это сумма двух частей, одна для z > 0, вторая для z < 0. Параметр z тут только переключает части и более никак не участвует в результате. Если идея понятна, сможете модицифировать как вам удобнее.
    f(x,z) = ((|z| + z) / 2) * |x|  + (|z| - z) / 2) * x
    Ответ написан
    Комментировать
  • Какие технологии учить в техникуме которые будут востребованы через 3-5 лет?

    Zoominger
    @Zoominger Куратор тега IT-образование
    System Integrator
    Какие технологии учить в техникуме которые будут востребованы через 3-5 лет?

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

    И могу ли я во время учёбы устроиться куда-нибудь на полставки или стажёром?

    Без проблем, разрешаю.

    Да и кем меня потом могут взять с такой квалификацией: "Техник по компьютерным сетям"(или по другому "Администратор компьютерной сети") и какие перспективы?

    Системным администратором, но для начала, конечно, помощником. Можно в телеком пойти, можно в девопсы, короче, как сами решите, развиваться есть куда, сфера огромна.
    Ответ написан
  • Что обозначает символ в формуле?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Что у вас не установлен математический шрифт в ворде, или где вы там смотрите.
    Ответ написан
    4 комментария
  • Как найти наибольший общий делитель с округлением?

    Beshere
    @Beshere
    Разработчик
    Мне кажется, тут нужен кластер-анализ.
    Ответ написан
    2 комментария
  • Как самостоятельно стать системный администратором и какие экзамены сдавать?

    paran0id
    @paran0id
    Умный, но ленивый
    От самих экзаменов, а точнее, сертификатов, толку мало. Но литературу по подготовке стоит прочитать. CCNA, RHCE, майкрософтовские - в зависимости от выбранного пути.

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