Профиль пользователя заблокирован сроком с 20 сентября 2021 г. и навсегда по причине: систематические нарушения правил сервиса
  • Как python заменить много значений в файле?

    longclaps
    @longclaps
    ruslan9836, надеюсь словарь ты сделаешь. А вот с выковыриванием есть вопросы:
    Допустим, в таблице заполнены все поля всех записей, тогда каждую строку можно разобрать в лист так:
    l = "bla-bla-bla".split("") и взять поле по индексу. Но что делать, если в некоторых текстовых полях NULL (он без кавычек)? Если в заменяемом поле NULL или отсутствующее в словаре значение?
  • Как python заменить много значений в файле?

    longclaps
    @longclaps
    ruslan9836, хрен со спасибом. Расскажите-ка мне, как поля выкусывать будете?
  • Как python заменить много значений в файле?

    longclaps
    @longclaps
    ruslan9836, из своего txt делаете словарь. Читаете построчно sql, пролог и эпилог без изменений, а из записей выкусываете нужные поля и заменяете значениями из словаря. Результат сбрасываете в новый sql-файл.
  • Как python заменить много значений в файле?

    longclaps
    @longclaps
    ruslan9836, вы совсем себе не помогаете.
    База в каком виде - sql dump или собственно база?
    Уникальны ли заменяемые значения?
    Уникальны ли заменяющие значения?
    Существует ли шаблон у тех и других?
  • Как python заменить много значений в файле?

    longclaps
    @longclaps
    Владимир Куц, вопрос задан весьма неряшливо, а база такая большая... Я бы не торопился с ответом.
  • Какие данные необходимы для составления школьных расписаний?

    longclaps
    @longclaps
    Не знаю, какие точно мозги нужны, чтобы смекнуть - эта задача ставилась и решалась несчётно раз. Наверное, надо быть чёртовым гением. Вы уверены, что потянете?
  • Как сократить и оптимизировать алгоритм?

    longclaps
    @longclaps
    Dazai, верно лишь отчасти. Важно вот что: в одном случае я перебираю все возможные пары слогаемых и "бомблю result" нулями по адресу их сумм. Затем я прохожусь по result и суммирую оставшиеся ненулевые значения. Второй этап занимает мало времени, О(N), зато первый, подготовительный - О(N**2)
    В другом же способе я перебираю возможные суммы (числа от 1 до lim) и для каждого ищу, есть ли ему хоть одна пара подходящих слагаемых.
    В чем разница? А вот в чем: в первом способе я совершаю (упрощенный вариант) 6965**2==48511225 сложений, если сумма не превышает lim, обнуляю по этому адресу result, это 24294140 присвоений. Длина(result)==28124, делим одно на другое - имеем 864, столько раз в среднем происходит обнуление каждой ячейки.
    С другой стороны, во втором случае, мы берем целевую сумму и просматриваем abundants на предмет наличия в нём пары слагаемых, дающих эту сумму. Сколько операций при этом совершается? Ответ зависит от:
    Если таких слагаемых нет, а всего таких чисел 1456, (а их сумма 4179871), так вот, в этих случаях будут перебраны все 6965 избыточных чисел, и для каждого из них не найдётся второго слагаемого. Заметь, доля таких случаев - всего 1456/28124==0.05
    Если же подходящие слагаемые есть - мы находим их быстро, ведь большинство сумм реализуется множеством сочетаний слагаемых, и первые решения находятся буквально сразу.

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

    longclaps
    @longclaps
    Арсений Хусаинов, тебе можно всё.
    То, что ты называешь символами - это цифры. Цифры, Арсений, применяются при записи чисел.
    Натуральный ряд чисел обладает одним интересным свойством - в промежутке, скажем, от 100 до 200 будут все числа от 100 до 200, ни больше, ни меньше. И если ты присмотришься повнимательней, то заметишь, что последние две цифры у этих чисел образуют всевозможные двухсимвольные сочетания от 00 до 99.
    Присмотрись повнимательней, Арсений.
  • Есть ли хороший задачник по программированию?

    longclaps
    @longclaps
    Сергей Горностаев, обобщать с позиции "видел я" довольно глупо. Вы видели тех, кто решал задачки с литкода, а потом пришел к вам наниматься. Это весьма узкая траектория, не все по ней идут.
  • Есть ли хороший задачник по программированию?

    longclaps
    @longclaps
    Сергей Горностаев, очень категоричное утверждение, сродни тому, что "хули думать, трясти надо". Хорошую задачку придумать нелегко, но решение хорошей задачки делает тебя лучше, факт.
  • Как сделать вывод массива со сдвигом?

    longclaps
    @longclaps
    Задача явно учебная, она тебе дана, чтоб сделать тебя более умным, а не более хитрожопым.
  • Как сократить и оптимизировать алгоритм?

    longclaps
    @longclaps
    Dazai, смотри: я демонстрирую тебе автомобиль на бензиновом двигателе и электромобиль, спрашиваю: в чем разница? Ты не видишь разницы, говоришь - примерно одинаковые. Каковы твои шансы стать конструктором? Ноль.
    Тут две совсем разные стратегии решения задачи. Судя по ответу, ты не понимаешь ни одну, ни другую. Это два очень маленьких куска кода. Вообрази себя процессором, попробуй исполнить их в своей голове.
    Вот тебе упрощенный, но идейно такой же код. Думай. Я беру паузу на неделю.
    @timer
    def solve_by_product(abundants, lim):
        result = list(range(lim))
        for i in abundants:
            for j in abundants:
                if i + j < lim:
                    result[i + j] = 0
        return sum(result)
  • Как сократить и оптимизировать алгоритм?

    longclaps
    @longclaps
    Dazai, смысл разбиения решения на этапы в том, что я могу их по-разному реализовывать и сравнивать:
    @timer
    def solve_by_product(abundants, lim):
        result = list(range(lim))  # изначально все числа - кандидаты в нераскладываемые
        others = []  # здесь будем копить варианты второго слагаемого
        for i in abundants:
            others.append(i)  # случай i + i должен быть учтен в этом же цикле
            for j in others:
                j += i
                if j >= lim:  # выход за пределы диапазона
                    break  # в others числа по нарастающей, остальные заведомо больше
                result[j] = 0
        return sum(result)
    
    
    print(solve_by_product(Abundants, N))  # тут время второго и результат

    Я хочу, чтобы ты подумал о разнице этих реализаций второго этапа.
  • Как сократить и оптимизировать алгоритм?

    longclaps
    @longclaps
    Это похоже на придирку, но всё же: есть оригинальный текст задачи, и там используется термин "abundant numbers", переведенный как "избыточные числа". Не то чтобы эти сраные избыточные числа так уж важны - нет, я их вообще видел один-единственный раз, именно в этой задаче. Тем не менее придерживаться оригинальной терминологии гораздо лучше, чем городить свою. И гораздо проще - ничего не надо придумывать, вот же, есть готовое.
    Не знаю, в чем ты разобрался. Когда я брал N=50, я просто демонстрировал, какие числа из первых 50 избыточные, ну так чтобы все они влезли в экран. Никакого другого смысла в 50 не было, в задаче было N=28124, при таком значении ты получал бы какие-то осмысленные времена выполнения, а не голые нули, кроме того, ты получал бы ответ на собственно задачу.
    В данном случае я бы хотел видеть решение с двумя этапами и временами их выполнения, суммарное время нафиг не нужно - ну это мелочи. Хотел так:
    @timer
    def get_abundants(limit: int):
        dividers = [1] * limit
        for i in range(2, limit // 2 + 1):
            for j in range(i * 2, limit, i):
                dividers[j] += i
        return [i for i in range(12, limit) if i < dividers[i]]
    
    
    @timer
    def solve_by_set(abundants: list, limit: int):
        abundants_set = set(abundants)
        return sum(i for i in range(1, limit) if all(i - j not in abundants_set for j in abundants))
    
    
    N = 28124
    Abundants = get_abundants(N)  # тут имеем время первого этапа
    print(solve_by_set(Abundants, N))  # тут время второго и результат

    Теперь про то, с чем ты там разобрался: на этом этапе это самое важное. Итак, с чем ты разабрался, расскажи.
  • Нужна помощь в подборе наушников для ПК. Стоит ли переплачивать за бренд?

    longclaps
    @longclaps
    Дмитрий, это Дмитрий?
    Шучу. Не пугайтесь, вы среди друзей, вас не втравят в опасные форумы.
    Еще
  • Как сократить и оптимизировать алгоритм?

    longclaps
    @longclaps
    Dazai, приделай таймер к функциям.
    Исследуй такой вариант второй функции, как это работает
    def solve_by_set(abundants, lim):
        abundants_set = set(abundants)
        return sum(i for i in range(1, lim) if all(i - j not in abundants_set for j in abundants))

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

    longclaps
    @longclaps
    def get_sum(arr: dict, N: int):
    Dazai, dict?? Куда спешишь?
  • Как переключить видеокарту на встроенную на HP Omen?

    longclaps
    @longclaps
    SuperRust, ну ты это, учись понимать - в жизни пригодится )
    От того что 1060 используется и виндой и играми, фпс практически не падает.
  • Как переключить видеокарту на встроенную на HP Omen?

    longclaps
    @longclaps
    Падает, SuperRust, драматически падает. В разы.
    Уж такие они уроды, эти HP, ничего спроектировать толком не умеют.
    Разве не так?