Задать вопрос
  • Как ускорить функцию подсчёта суммы от 0 до заданного числа js?

    Fragster
    @Fragster
    помогло? отметь решением!
    Воспользоваться мозгом и посчитать, сколько чисел делится на 3 нацело (n3), на 5 нацело (n5), на 15 нацело (n15) в диапазоне.
    Затем по формуле суммы n первых чисел арифметической прогрессии посчитать сумму n3 последовательности с шагом 3 + сумму n5 членов последоват1льности с шагом 5 - сумма n15 членов последовательности с шагом 15 и получить сложность вычисления O(1) вместо O(n)
    Да и в имеющемся коде зачем-то создается и расширяется массив (много-много раз происходит выделение памяти), затем выполняется его обход. тупо избавившись от него и считая сразу в один цикл получится в несколько раз ускорение.
    Ответ написан
    1 комментарий
  • Как ускорить функцию подсчёта суммы от 0 до заданного числа js?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    const n3 = Math.floor(n / 3);
    const n5 = Math.floor(n / 5);
    const n15 = Math.floor(n / 15)
    const sum = (n3 * 3 * (n3 + 1)  + n5 * 5 * (n5 + 1) - n15 * 15 * (n15 + 1)) / 2;
    Ответ написан
  • Google Play Market ушёл из России: чем вы пользуетесь?

    Ищу альтернативу Google Play, в связи с блокировкой в России.

    Странно, вроде бы для потребителя никто ничего не блокировал. Как можно было устанавливать приложения - всё ещё можно.

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

    Если очень принципиально, то есть App Gallery и F-Droid
    Ответ написан
    3 комментария
  • Разница в работе памяти и ссылок в C# и Python?

    Griboks
    @Griboks Куратор тега C#
    Разница в работе памяти и ссылок в C# и Python?

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

    ситуация с ссылочными типами должна быть примерно идентична с Питоном

    Да, ситуация очень похожа, и в большинстве случаев так и будет работать. Но как я и предупреждал: "The actual lifetime of a local variable is implementation-dependent."

    Но что происходит, когда я так делаю с value типами?

    В действительности существует 7 категорий переменных, о которых можно прочитать по ссылке.

    Ссылки тут нет (нет же?) и как я понял, то переменная с value типом хранит сам объект, а не ссылку на объект.

    Значимые типы могут содержать ссылки, поэтому сборщик мусора молчаливо удалит лишь оболочку и любезно предоставит вам утечку памяти, но это очень редкий случай. В большинстве случаев можно сказать, что значимая переменная хранит значение. Причём не просто хранит, а копирует его при присваивании ("Assignment to a variable of a value type creates a copy of the value being assigned. ").

    Получается, my_number просто перезапишет значение с 10 на 20 и все?

    Хороший вопрос, но в нём есть подвох. Выражение int my_number = 10; ничего никуда не записывает, а инициализирует - создаёт привязку переменной my_number к ячейке памяти с числом 10 на этапе компиляции. В итоге ваш пример записывает новое значение в переменную всего один раз и завершается.

    Кроме того, это новое значение вовсе и не значение, а литерал. Встаёт ряд вопросов: "Литералы тоже копируются согласно спецификации, или компилятор умнее?" А если компилятор умный, то почему бы ему не объединить этот код в int my_number = 20; на этапе компиляции? Тут уже не лишним и исходники компилятора + виртуальной машины посмотреть.

    Читал про стэк, но ясного понимания пока нет.

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

    p.s.
    На всякий случай хочу заметить, что в питоне тоже не всё так просто и очевидно. Например:
    x = 1; print(id(x))
    x = 2; print(id(x))
    y = 1; print(id(y))
    Ответ написан
    1 комментарий
  • Как узнать диапазон сетей?

    @res2001
    Developer, ex-admin
    172.29.0.0 - это адрес подсети с маской 16 (255.255.0.0).
    Для сети из 30 узлов достаточно сети с маской 27 (225.225.225.224). n=5 - полагаю это как раз про маску.
    Но в классовой маршрутизации маски не использовались, так что ее задание довольно странно.
    Если задают маску (хоть в каком виде), то значит это уже бесклассовая маршрутизация, а следовательно бессмысленно говорить о сети класса В (и любого другого класса).

    Чтоб узнать адрес 27ой сети, нужно знать фактический адрес узла. В задании его нет. Имея адрес узла, можно наложить на него маску (с помощью битовой операции И) и получить адрес сети.

    Можно порассуждать и например взять произвольный адрес в заданной сети класса В. Например возьмем адрес: 172.29.35.136.
    172.29.35.136 AND 255.255.255.224 => 172.29.35.128 - это адрес сети для узла 172.29.35.136 с маской 255.255.255.224. При этом диапазон адресов в этой сети: 172.29.35.128 - 172.29.35.159. Ёмкость сети - 32 узла. Наш узел 172.29.35.136 входит в этот диапазон.
    Чтоб лучше понять, рекомендую использовать калькулятор в режиме "программиста" и смотреть представление цифр в маске и адресах в двоичном виде.
    Ответ написан
    Комментировать
  • Как обойти каптчу?

    @deliro
    Ну допустим, измени код
    Ответ написан
    1 комментарий
  • Электронный дневник/календарь для самообучения?

    @dmshar
    Вы бы сосредоточились не на "ковырянии" Notion, а на изучение того, что вы поставили целью изучить. Толку точно было бы больше.
    Ответ написан
    2 комментария
  • Как отправить инициализированный локально репозиторий Git в свой аккаунт на Git-хостинге?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Используйте GitHub CLI
    # create a repository interactively
    gh repo create
    
    # create a new remote repository and clone it locally
    gh repo create my-project --public --clone
    
    # create a remote repository from the current directory
    gh repo create my-project --private --source=. --remote=upstream

    Или GitLab CLI
    # create a repository under your account using the current directory name
    $ glab repo create
    
    # create a repository under a group using the current directory name
    $ glab repo create --group glab-cli
    
    # create a repository with a specific name
    $ glab repo create my-project
    
    # create a repository for a group
    $ glab repo create glab-cli/my-project
    Ответ написан
    Комментировать
  • Как обновить записи в sql?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    В SQL записи обновляются запросом UPDATE.
    Ответ написан
    6 комментариев
  • Не получается очистить временный список?

    sswwssww
    @sswwssww
    Замени
    result.append(temp)
    на
    result.append(temp[:])
    Делая срез [:] ты будешь передавать поверхностную копию temp вместо ссылки на оригинальный temp.
    Ответ написан
    Комментировать
  • Почему в книге "изучаем питон" Марка Лутца нет множеств?

    QuiShimo
    @QuiShimo
    Держу путь на бекэнд :)
    Привет!

    Проверил сейчас, данный тип рассматривается во второй главе - "Прочие основные типы"(158 страница). Скорее всего более подробно также рассматривается далее в книге.

    Насколько гуглил когда изучал Python - Лутц некая классика среди питонистов и наиболее полный учебник.
    Ответ написан
    Комментировать
  • Что делать с базой данных?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Нужно изучить хотя бы самые основы SQL и проблема исчезнет.
    Ответ написан
    1 комментарий
  • Как переписать код с с++ на с(си)?

    CityCat4
    @CityCat4 Куратор тега C
    //COPY01 EXEC PGM=IEBGENER
    Обычно я такими вещами не занимаюсь... но... жалко девочку, пример скачала, но он на плюсах, а злой препод требует plain C (а еще может потребовать обьяснить, как оно работает! :DDD)
    (JFYI, Инна - я бы только за форматирование пару поставил - читать это невозможно от слова совсем)

    #include <iostream>
    меняем на
    #include <stdio.h>
    using namespace std;
    нафиг.

    Цикл вывода, где потоковый оператор cout, переписать следующим образом:
    for ( j = 0 ; j < W ; j++)
      printf("%d ", matrix[i][j]);  
    putchar('\n');


    И настоятельно рекомендую, прежде чем идти лабу сдавать - почитать или посмотреть в отладчике, как это работает. Потому что чайник срезается одним вопросом.
    Ответ написан
    3 комментария
  • Отправка POST данных в python и получение ответа, как сделать?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Написать небольшой бэкенд на фласке:
    from flask import Flask, request
    
    app = Flask(__name__)
    
    @app.route('/', methods=['POST'])
    def hello_world():
        result = request.form.get('login')
        return result*2
    
    
    if __name__ == '__main__':
        app.run()


    Потом кинуть запрос
    $.ajax({
            url: "http://127.0.0.1:5000",
            type: "POST",
            cache: false,
            data: {'login' : 'brepex'},
            success: (data) => {
                alert(data)
            }
        });
    Ответ написан
    Комментировать
  • Возможно ли окно у окна отключить взаимодействие?

    Nightmare1
    @Nightmare1 Автор вопроса
    Программист
    Нашёл решение ,флаг QtCore.Qt.WindowTransparentForInput отключает возможность взаимодействия мышью и клавиатурой с плоскостью отображения.

    self.setWindowFlags(
                QtCore.Qt.WindowStaysOnTopHint |
                QtCore.Qt.FramelessWindowHint |
                QtCore.Qt.X11BypassWindowManagerHint
                | QtCore.Qt.WindowTransparentForInput
            )
    Ответ написан
    Комментировать
  • Как переквалифицироваться из программиста в аналитики?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Вроде не маленький, опыт работы 10+ лет, а вопросы детские.
    Сходи по собеседованиям на аналитика, там всё и поймёшь
    Ответ написан
    Комментировать
  • Как переквалифицироваться из программиста в аналитики?

    krdpsr
    @krdpsr
    loading...
    сначала надо проанализировать эту тему
    если не можешь - значит еще не аналитик
    Ответ написан
    2 комментария
  • Как переопределить функцию в библиотеке?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Если я правильно понял, вам нужно что-то вроде этого: Python: декорируем декораторы
    Ответ написан
    1 комментарий
  • Не могу найти ошибку в коде Python?

    @ultrasn0w
    Для начала выведи себе ошибку хотя бы в консоль, тогда станет яснее что не так.

    except Exception as e:
          print(e)
          msg = bot.reply_to(message, 'упс ошибка!')
    Ответ написан
    1 комментарий
  • Не могу найти ошибку в коде Python?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Не надо ловить абстрактный Exception вообще никогда! Тем более игнорировать его и даже не выводить в консоль. Произошла ошибка, а какая, почему произошла - ваще непонятно.

    Какие тут могут случиться ошибки? Ну, например, если в user_dict нет записи с ключом chat_id, то случится KeyError. Или если в getRegData возвращается невалидный markdown-текст, то случится ошибка ApiException.

    А далее после обработки exception путём его игнорирования тут снова вызывается register_next_step_handler, который приводит к тому, что вводимые пользователем данные снова попадают в тот же обработчик и - вероятно - натыкаются на ту же самую ошибку. Например, KeyError: конечно, ведь как при прошлом запуске этого обработчика не было значения с таким ключом, так и при последующих не появится.

    До кучи, не надо вызывать постоянно bot.get_me(). Это каждый раз будет вызов API. Неужели имя бота меняется каждую минуту? Достаточно запомнить при запуске бота - и достаточно.
    Ответ написан
    Комментировать