Задать вопрос
  • Где изучать C# новичку?

    Adler_lug
    @Adler_lug
    Основы языка не зависят от версии .Net, т.к. там >90% всего одинаково, а остальное нюансы, понимание которых придет, когда освоите основы.
    Ответ написан
    3 комментария
  • Как найти все целочисленные точки отрезка?

    @Karpion
    Допустим, x1, y1, x2, y2 - целые.
    Пусть x1=y1=0 (достигается: x2=-x1; y2=-y1;).

    Ищем k=НОД(x2,y2) (там по ссылке есть алгоритмы).

    Делим x2 и y2 на к - это координаты первой точки.
    Умножаем координаты первой точки на 2,...,(k-1) - получаем все остальные точки (конечные точки и первая точка считаются уже найденными, их не выводим; если надо все - то ряд будет 0,1,...,k).
    Ответ написан
    Комментировать
  • Как найти все целочисленные точки отрезка?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для произвольных (x₁, y₁) и (x₂, y₂), IMHO, только брать все целые значения между x₁ и x₂ и проверять значение y в полученных точках.
    Для целочисленных (x₁, y₁) и (x₂, y₂) можно так:
    n = НОД(|x₂ − x₁|, |y₂ − y₁|)
    dx = (x₂ − x₁) / n
    dy = (y₂ − y₁) / n
    И взять все пары (x₁ + dx × i, y₁ + dy × i) для i = 1 .. n − 1
    Ответ написан
    3 комментария
  • Как найти все целочисленные точки отрезка?

    DanielDemidko
    @DanielDemidko Автор вопроса
    Программист
    Алгоритм Брезенхема?
    Ответ написан
    1 комментарий
  • Что я сделал не так?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Проблема в вашем коде связана с неправильным использованием переменной n в цикле. Вам нужно увеличивать n на единицу, чтобы передать последовательные числа от L до R в функцию simpleDividers, но вы не обновляете n в цикле. Также индексация simpleDividers(n)[len(simpleDividers(n))+1] вызывает ошибку, поскольку выходит за пределы индексов возвращаемого списка.
    Ответ написан
    Комментировать
  • Как решить подобную задачу?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Ошибка, если интересно, в том, что в коде написан & вместо %. Соответственно, пропускаются не числа, которые не делят n, а числа, дающие не 0 в побитовом И с n.

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

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

    Совсем быстрое решение - это динамическое программирование по бинарным цифрам корня. Это весьма сложный алгоритм. Сработает, в общем-то, для n до 2^64. Считайте F(l,f) - количество способов как-то расставить первые l бит числа, т.ч. все биты, единичные в n, взяты по 0, и число не превосходит корня из n, а f - флаг, означающий, что число уже строго меньше корня.

    Легче считать это циклом снизу вврех. Смотрите, какую цифру можно дописать к (l,f): если в n стоит 1 в этом бите - то только 0. Иначе, можно дописать 1, только если f=1 или в sqrt(n) стоит 1 в этом бите. Новый флаг f' будет 1, только если f=1, или вы поставили 0, а в sqrt(n) стоит 1.

    Потом ответ надо домножить на 2 и вычесть 1, если (int)sqrt(n) & n == 0.
    Ответ написан
    1 комментарий
  • Как сократить данную операцию?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    65716e620e891950299589.png
    Ответ написан
    Комментировать
  • Как сократить данную операцию?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Я правильно понимаю, что мы сначала полностью сносим инверсию?

    Вначале, да - можно применить закон де Моргана
    Если да, то что делать дальше

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

    Распределительный закон применим к булевой алгебре
    Ответ написан
    Комментировать
  • Как сократить данную операцию?

    @Mercury13
    Программист на «си с крестами» и не только
    Сначала законы де Моргана. Потом !!B=B, и т.д.
    Первая часть даст B || !C. Вторая — !B || C. И всё это ИЛИ — так что выходит тождественная истина (B || !B = 1).
    (Простите, облом искать юникодные символы, так что беру из Си: && и, || или, ! не)
    Ответ написан
    1 комментарий
  • Почему не работает код?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну разбей свою задачу на две части
    1. Парсинг ввода пользователя и запись в подходящую структуру данных (словари)
    2. Расчеты

    Потом все будет просто, например.
    words = {
        'm': 2,
        'a': 3,
        'l': 1,
        'i': 1,
        'n': 2,
        's': 1,
        'o': 5,
        'r': 1,
        'd': 1
    }
    
    jams = {
        'smorodina': 1,
        'malina': 2
    }
    
    total = 0
    
    for jam, amount in jams.items():
        jam_time = 0
        for letter in jam:
            jam_time += words[letter]
        total += jam_time * amount
    
    print(total)

    Получи, вот такие словари. И потом просто обойди это дело циклами. Возможно, можно это как то оптимизировать. Надо дальше думать.
    Ответ написан
    2 комментария
  • С чего начать изучение C, стоит ли это делать?

    CityCat4
    @CityCat4 Куратор тега C
    //COPY01 EXEC PGM=IEBGENER
    Уэйт Прата Мартин Язык С

    Книга конечно совсем не новая, ну так и язык С - тоже не новичок, уже несколько поколений своих "убийц" пережил :)
    Ответ написан
  • Как решить олимпиадную задачу по физике?

    Daemon23RUS
    @Daemon23RUS
    Ход мысли верный, не забыть что раз сопротивлением воздуха пренебрегаем, то пуля движется с ускорением, скорость возвращающейся звуковой волны постоянна.
    Ответ написан
    3 комментария
  • Спалят ли HR резюме?

    1. На начальных этапах никто не звонит работодателю для уточнения данных. Не кредит же тебе на миллион одобряют)

    2. Каких проблем ты ожидаешь от кадровиков? Типа что в обход твоего руководителя уволят или зп понизят за то что ты решил "предать партию" (а на каком основании лол?)? Чтобы ты ещё быстрее от них ушёл? Или на доску позора повесят?
    Объективно худшее, что может произойти - работодатель проигнорирует тот факт, что ты решил уйти.
    А скорее всего - включится механизм удержания с предложением перехода на другой, более интересный проект, или повышение зп.

    PS: ну и ты всегда можешь сказать, что не имеешь право указывать своё место работы или контакты работодателя.
    Ответ написан
    Комментировать
  • Как решить задачу ниже?

    HamSter007
    @HamSter007
    HTML/CSS верстальщик
    for(var i = 0; i<20; i++){
      var rand = Math.floor(Math.random() * 10);
      document.write(rand);
    }


    SO
    Ответ написан
    1 комментарий
  • Почему вектор перемещения не поддается правилу треугольника при вычитании векторов?

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    На графике или в тексте ошибка. Или там r-r0 должно быть в тексте, или стрелочку не в ту сторону нарисовали.
    Так бывает - в учебниках и методичках встречаются опечатки.
    Ответ написан
    Комментировать
  • С чего начать изучение мат анализа?

    Maksim_64
    @Maksim_64
    Data Analyst
    Если с английским, как ты указал полный порядок. Потрать год на бесплатные курсы с Khan Academy. И у тебя не будет проблем с пониманием мат анализа. При чем начать ты можешь с того места с которого тебе нужно, возможно, я этого не знаю у тебя есть пробелы с алгебраическими преобразованиями, возможно со сведении проблемы к математическому виду (например дана задача) составить уравнение и решить. Я не видел подобного качества курсов. Там есть все precalculus, calculus AB, calculus BC, algebra, linear algebra. Самое главное коротенькие 5-10 минут видео и наверное больше тысячи упражнений. Это хорошая инвестиция времени и она послужит тебе хорошую службу в дальнейшем. https://www.khanacademy.org/ Зарегестрируйся, и начни со своего уровня. Не посредственно мощнейшее введение в мат анализ это calculus AB, calculus BC, multivariable calculus, linear algebra. Но по скольку ты сейчас в 9 классе начинай не с них, а со школьной программы там она есть, увидишь courses и там математика с первого класса, ты со старших начни, не пропусти algebra 1 и algebra 2, geometry и trigonometry. Что выгодно отличает это обучение, ты решишь сотни задач где дана проблема ты ее сначала сводишь к математическому виду, и затем решаешь. А не сухое манипулирование формулами. Так помимо математики ты научишься ее применять.
    Ответ написан
    1 комментарий
  • С чего начать изучение мат анализа?

    @alexalexes
    Берешь учебник за 10-11 класс, и смотришь чего там по части "... начала анализа" - что такое производная, интеграл, предел.
    Потом берешь лекции мат. анализа за первый курс для студентов технического вуза и смотришь:
    - теорию множеств,
    - окрестность точки (пытаешься понять смысл теорем),
    - познаешь сущность понятия бесконечности (со знаком минус и плюс).
    - что такое, наконец, предел (по взрослому),
    - что такое функция.
    - изучаешь производные (по взрослому).
    - отвлекаешься на теорию рядов, плавно переходишь к сумме членов рядов, и далее выходишь на что такое интеграл (по взрослому).
    - в прикуску изучаешь различные виды интегралов и как решать разными методами уравнения в частных производных.
    - еще в довесок изучаешь операторы Лапласа и прочих бородатых мужиков.
    И забыл сказать, каждый пункт прорабатываешь решением зубодробительных задач из задачника Демидовича.

    Все - вы знаете матан.
    Ответ написан
    5 комментариев
  • Как решать подобные задачи по криптографии?

    vesper-bot
    @vesper-bot
    Любитель файрволлов
    Как решать - алгоритмически. Любая криптография - это набор алгоритмов преобразования данных итд, которые можно выполнить руками и посмотреть на все промежуточные данные. А также на то, из чего они порождены, как здесь, где в качестве random seed использован один байт. И если вы увидели, что какой-то элемент промежуточных данных оказывается статичным или из небольшого множества возможных значений, создаете множество и применяете перебор (в самом крайнем случае, иногда и он не нужен). "Взрослая" криптография обычно куда сложнее, но и там бывает, что какие-то величины оказываются не из полного пространства 2^N, тогда алгоритм использования этого факта называется "атака уменьшения сложности". Вот искать такое - уже нужно разбираться в высшей математике на уровне математических абстракций, а олимпиадные задачи чаще всего требуют относительно простого анализа алгоритма или кода.
    Ответ написан
    Комментировать
  • Как решать подобные задачи по криптографии?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как решать подобные задачи по криптографии?

    Для начала прочитать условия и заглянуть в код. Увидеть в нём вот это:
    key_val = b""
        seed_val = plain_text[0]
        random.seed(seed_val)
        for i in range(16):
            key_val += random.randrange(1, 255).to_bytes()

    понять, что key_val однозначно генерируется из первого символа открытого текста.

    Флаг имеет формат вида ntcontest{FLAG_VALUE}

    Я не понял эту часть, имеется в виду, что первый символ открытого текста флага -- 'n'? Если так, то вообще решение в одно действие, если нет, то в любом случае можно организовать перебор всех возможных первых символов, генерировать по ним key_val, расшифровывать им и проверять, что первый символ полученного текста совпадает с символом использованным для генерации ключа.
    Ответ написан
    Комментировать
  • Какой браузер подойдёт для 20 летнего ноутбука?

    pindschik
    @pindschik
    ФЫВА ОЛДЖ
    Здесь комплекс проблем:
    - современные браузеры требуют современные ОС.
    - современные браузеры требуют современные процессоры, поскольку используют аппаратное ускорение, которого просто не было в старых P4.
    - страницы и контент - сейчас требуют реально много памяти и вычислений.
    - старые браузеры просто не понимают нынешние страницы и не могут HTTPS.

    Т.е даже когда вы подберете браузер, то получите максимально урезанные страницы и зависоны через раз. При этом если попадете на youtube или просто вылезет реклама с видео - всё, приплыли.

    Вам немного повезло - Celeron M это не Pentium 4, а фактически уже почти архитектура Core, но все же кончайте мучатся. Надо менять это изделие...
    Ответ написан
    Комментировать