简体中文
Telegram

讨论串Есть идеи как можно ускорить перебор всех значений? lru_cache уже добавил, но все равно медленно и MemoryError

17 条消息 · –
Е
照片
点击显示
Есть идеи как можно ускорить перебор всех значений? lru_cache уже добавил, но все равно медленно и MemoryError
  1. 🍉
    Лучше подумай над алгоритмом
    1. Е
      Например? Предлагаешь оптимизировать саму рекурсивную функцию?
      1. 🍉
        Не перебором решить. Попробуй идти от четвёрки, применяя комбинации операций. Поиграйся с числовой прямой, посмотри каким образом число может попасть в 4
          1. 🍉
            Вот тебе подсказка: У тебя есть отправная точка (это 4) и две операции
            1. Е
              Почему отправная точка это именно 4? Мне же надо посчитать входные значения которые дают 4
              1. 🍉
                Тебе надо найти все N, которые "скатываются" в 4. Вместо перебора N, тебе надо идти от обратного, там сложность гораздо меньше
          1. K
            Правило Лопиталя, Вы увеличили карму 🍉 до 14632.88 (+13.21)
    1. Е
      Можно вообще тогда на C++ или Rust переписать, хочется продуманно оптимизировать
    2. 🍉
      Тут нужен другой алгоритм, а не брутфорс
  2. 🍉
    а, я задачу не так прочитал 😁 но если это помогло тебе придумать что-то, то я рад)
    1. Е
      Оказывается что эта функция возвращает на 1 больше чем количество единиц в двоичной записи исходного числа
  3. ⁣
    Такое обычно руками решают, берешь первые наборы входных параметров и смотришь, что там происходит. Обычно представлен какой-то базовый алгоритм или представлена некая зависимость, ака степени двойки. Почему так? Потому что иначе задача не решается не в лоб, а значит вообще не решается. Кароче надо научиться быстро искать зависимость выходного значения от входного

来自搜索索引的公开信息流 ChatCrawler ——“公开 Telegram 的 Google”;随着该社群被抓取而更新。 时间为 UTC。

仅限公开内容,使用 Telegram 官方 API。 关于 · 常见问题 · 索引限制 · 移除页面 · 目录 · 搜索 · 计算方法