• Как расширить вычисление до 2^120?

    wataru
    @wataru Куратор тега Математика
    haqz,

    result = 1 а i меньше инпут. Поэтому я могу найти инпут за количество операций = i а не инпуту.


    Вот для этого конкретного Input у вас оказалось итераций меньше.
    А для какого-то другого инпута понадобится больше итераций чем он сам.

    Мои формулы сделаны так, что бы потом можно было инпут востановить кргда находится result = 1


    Нет. ваши формулы вычисляют result через i и input. Как вы input вычисляете по ним - вообще непонятно. Переформулируйте задачу. Третий раз повторяю. Что дано? Что надо сделать?

    У вас там гомоморфное шифрование, что ли, что input дан защифрованный, но вы можете производить над ним арифметические операции и сравнивать с единицей?
  • Как расширить вычисление до 2^120?

    wataru
    @wataru Куратор тега Математика
    haqz,
    z = 0x5f87 * 0x42 % N = 0x18a0ce а не 1!

    0x5f87 - это input? А почему вы i на input умножаете, если формула в ответе, да и в вашем коде другая?

    я как понял это решение дает всегда i > input ?!


    Нет. Ведь умножение по модулю. Иногда оно дает i < input. Но всегда найдутся такие input, что i >= input.

    input в задаче неизвестное ! А вы его используете как известную величину. Input и надо найти !!!


    Но вы сами в своем коде input используете! Что значит, оно неизвестное, его надо найти, но result, вычисленный через него должен быть 1? А еще у вас в вопросе нигде не сказано, что вам надо i маленькое, что вы так какие-то вычисления ускоряете.

    вы постоянно хотите чето рвзузнать


    Я пытаюсь понять задачу. Поскольку вы не в состоянии свою задачу сформулировать, да и она бредовая и бессмысленая, единственная надежда понять, что же вам надо - это увидеть изначальную задачу (которая, очевидно, пришла к вам из внешнего мира, а не родилась у вас в голове. Это-то вы воспроизвести, надеюсь, можете).

    Повторю свой вывод. i задается через gamma/delta/input однозначно (если result нужен 1) простой формулой. Но эта формула дает большие i для каких-то входных данных, как бы вы константы не меняли.
    Таким способом вам ваши вычисления не ускорить.
  • Как расширить вычисление до 2^120?

    wataru
    @wataru Куратор тега Математика
    haqz, Ответ, например:
    delta = 1
    gamma = 1
    i = 0x9fd24b3abe244d6c443df56fa494dc
    Или
    delta = 0x9fd24b3abe244d6c443df56fa494dc
    gamma = 1
    i = 1
  • Как расширить вычисление до 2^120?

    wataru
    @wataru Куратор тега Математика
    haqz, опять что-то непонятное у вас. Научитесь уже формулировать вопросы.

    Дано: ?
    Найти: ?
    Ограничения.

    Пока так понимаю, что вам надо подобрать такие гамма и дельта (константы), Что любое число X <= 2^120 после домножения на гамма, деления на дельта и деления на произвольное i < 2^30 давало 1?
  • Почему мы имеем право решать уравнения методом замены переменной?

    wataru
    @wataru Куратор тега Математика
    Можно пример, что именно вы имеете ввиду под "замена переменной"? Типа x^4+3x^2+4 = 0 решается через z=x^2, z^2+3z+4 = 0?
  • Как найти такие натуральные числа n, при котором выполняется равенство a^7 + a^3 = a^n + 1?

    wataru
    @wataru Куратор тега Математика
    Вы получили a^n=a^16 используя только преобразования без случаев, поэтому других вариантов нет. Но, кроме 16 могут быть дргие ответы, если a^k=1. В частности, для вещественных, если a=1, то n может быть любое. Но в этом задании видно, что a!=1.

    С комплексными - если a корень из 1, то есть и другие ответы.

    Можно доказать, что других комплексных вариантов нет. Если |a|!=1, то n - только 16. Если же модуль 1, то надо взять аргумент от обеих частей и получится, что (n-16)x =2 pi k, где x= Arg(a), k - целое.

    Это имеет отличные от n=16, k=0 решения, если x= 2pi k/(n-16), т.е. a - корень из 1.

    Теперь осталось доказать, что заданному уравнению не полходят корни из 1.
  • Как вычислить правильно в скрипте python?

    wataru
    @wataru Куратор тега Математика
    haqz,

    Надо подобрать a,b,c,d так, что любое/как можно больше x= random.randint(2**119,2**120) после домножения на 1/a*b/c*d было меньше 10^70?


    Ответ - НИКАК!
    (если не считать тривальный случай a=b=c=1, d = 0, но вряд ли вам это подходит).

    Могу вам математически доказать, что какие бы вы a/b/c/d не выбрали, результат всегда будет меньше T ровно для каждого T/N (В вашем случае T~2^70, N~2^256 T/N~= 2^-180). Это очень маленький шанс.

    Если бы T = 1 А N=239, то какие бы вы a/b/c/d не выбрали, ответ будет хорошим ровно в 1/239 случаев.
  • Как вычислить правильно в скрипте python?

    wataru
    @wataru Куратор тега Математика
    RINCODE, Ах, или я читал жопой, или вы отредактировали вопрос. Теперь там надо до 2^70. Что понижает шансы на успех с одной 10-ти-миллионной до 2^-50, что совсем печально.
  • Как вычислить правильно в скрипте python?

    wataru
    @wataru Куратор тега Математика
    haqz, В смысле - без остатка?

    Вообще сформулируйте задачу четче.

    Надо подобрать a,b,c,d так, что любое/как можно больше x= random.randint(2**119,2**120) после домножения на 1/a*b/c*d было меньше 10^70?
  • Как вычислить правильно в скрипте python?

    wataru
    @wataru Куратор тега Математика
    haqz, Что? Ничего не понял.
  • Как вычислить правильно в скрипте python?

    wataru
    @wataru Куратор тега Математика
    haqz,
    2^256 ~= 10^78

    Какие бы вы константы a/b/c/d не взяли результат будет меньше k ровно для k/N входных данных.
    Потому что это умножение на константу по модулю N и оно обратимо.

    Поэтому что ни делай, какие константы не подбирай, результат будет меньше 10^70 d 10^70/10^78 = 10^-8 случаев. Никакой 1/7 и даже 1/1000 тут и не пахнет.
  • Как грамотно переписать фабрику?

    wataru
    @wataru Куратор тега C++
    MuffinLover, Ну вот как я сказал - у вас статический вектор/мап, заполненый строчками, использующими статические методы классов.

    Сам код фабрики, как у вас, но за счет статических методов, экземпляры классов не создаются, если они не нужны.

    Вы вместо указателей на Strategy, храните указатели на функции, создающие их.
  • Почему выводится статичное некорректное значение?

    wataru
    @wataru Куратор тега C++
    Kryptonit, если вы там в конструкторе geometry выведите, то оно будет правильное. Но вне конструктора - это висячий указатель.
  • Почему выводится статичное некорректное значение?

    wataru
    @wataru Куратор тега C++
    Kryptonit, еще раз, geometry - это указатель. Это 8 байт, хранящие адрес чего-то. Операция присваивания у вас не копирует никакие данные, а запоминает адрес локального массива. По выходу из функции локальный массив - все. Что такое область видимости вы знаете? И у вас остается в geometry адрес пустоты, памяти, где когда-то были нужные данные. В месте, где вы их выводите, так получается, что это место переиспользуется для других данных, которые для вас мусор, хоть и постоянный.
  • Почему выводится статичное некорректное значение?

    wataru
    @wataru Куратор тега C++
    Kryptonit, Да. И что вас тут смущает?
  • Как реализовать шаблонный оператор\функцию, чтобы скрыть < и > символы после объявления?

    wataru
    @wataru Куратор тега C++
    yatanai, А как он должен определить, какой тип вы хотите использовать? Он вообще-то не может посмотреть через знак "=" и понять, что вы присваиваете int, значит вам нужен int. Можно же в int присваивать и char и short.
  • Можно ли быстрее чем за O(N) подсчитать сумму S(N,K,M) = sum i=0..N K*i%M?

    wataru
    @wataru Автор вопроса, куратор тега Математика
    Anton F, Период и так известен. Это M (если сократить k и m на gcd, как указано в вопросе). Именно эта идея с отбрасыванием полных периодов уже расписана в вопросе (абзац "Дальше, можно считать, что N < M...") И сложность остается O(N % M), что ничем не лучше, если N < M.
  • Можно ли быстрее чем за O(N) подсчитать сумму S(N,K,M) = sum i=0..N K*i%M?

    wataru
    @wataru Автор вопроса, куратор тега Математика
    Все-равно, спасибо за ответ!
  • Можно ли быстрее чем за O(N) подсчитать сумму S(N,K,M) = sum i=0..N K*i%M?

    wataru
    @wataru Автор вопроса, куратор тега Математика
    И какая же, по вашему, сложность у этого алгоритма?
  • Как решить задачу на c++?

    wataru
    @wataru Куратор тега C++
    mayton2019, Alexandroppolus, -1, очевидно, означает, что ответа на задачу нет. Например, даже один повтор A-B два раза пересечет искомую точку, а введено K=1.

    Но без полного условия задачи с форматом ввода не все понятно.