• Как в Си вывести в консоль без записи в буфер?

    wataru
    @wataru
    Rsa97, да, но указанная в вопросе команда отработает, как автор хочет.
  • Какими функциями заменить array_diff() в Си?

    wataru
    @wataru
    mayton2019, Похоже тут все просто. В вопросе:
    удалить все значения из списка a, которые есть в списке b
    . Если элемент встречается в b, неважно сколько раз, все его вхождения в a надо удалить. Оставить только те, что не всречаются в b. array_diff, упомянутый в вопросе, работает точно так же.

    Альтернативное понимание, что надо удалить из a элементы столько раз, сколько они встречаются в b, слишком заумно, сложно формализуемо, имеет мало практического смысла, и при этом его гораздо сложнее натянуть на условие в вопросе.
  • Возможно ли полностью покрыть поле паркетом без пересечений?

    wataru
    @wataru Куратор тега Математика
    Alexandroppolus, Да, вы правы, этот алгоритм Хопкрофта-Карпа будет быстрее алгоритма Куна для этой задачи.
  • Возможно ли полностью покрыть поле паркетом без пересечений?

    wataru
    @wataru Куратор тега Математика
    Alexandroppolus, Это даст ускорение в случаях, если какая-то компонента несбалансирована по количеству черных и белых клеток, да.
    Но в худшем случае поиск паросочетания по каждой компоненте отдельно нисколько не быстрее поиска на всем графе сразу же.
  • Как принимать ввод с потока до символа новой строки?

    wataru
    @wataru Куратор тега C++
    gleendo,
    1) Скармливать программе файл через перенаправление ввода
    2) Читать строку через getline, потом читать из строки через sstream
    3) После чтения числа читать символ и проверять, что это пробел - тогда ждать еще одно число. Но это ломается, если оставить после последнего числа пробел.
    4) Через peek пропускать все пробелы во вводе. Если следующий символ окажется eof или eol, то завершаться.
  • Что надо изменить в коде чтобы найти количество максимальных элементов массива?

    wataru
    @wataru Куратор тега C++
    Adamos, Да, разумеется, все можно объединить в один цикл, если немного подумать. Но если у человека возникают проблемы в этой задаче, то это будет слишком сложный шаг.
  • Почему при создании динамической строки игнорируется нулевой индекс?

    wataru
    @wataru
    coborn, Но в файле же после 1 ничего нет. Он читает строку не считывает нифига и потом выводит ничего.
    Во втором случае после 2 идет только одна строка. Ее, первой же, читает. Но потом в файле ничего нет.
  • Как конструктор std::ofstream преобразует std::string в char const * filename?

    wataru
    @wataru Куратор тега C++
    Qubc, На cplusplus же написано:
    typedef basic_ofstream<char> ofstream;
  • Как расширить вычисление до 2^120?

    wataru
    @wataru Куратор тега Математика
    я поместил Вашу формулу i = beta * input % N в


    Не поместили:
    while i < 100:

    Вот:
    i = beta * input % N
    result = divnum(input*beta %N, i)

    Очевидно, что тут result будет 1? Потому что это divnum(x,x) - деление себя на себя.

    Понятно, что divnum(input*beta %N, i) это то же самое, что ваше:
    d= (divnum(input,delta)) 
    s = divnum(i,gamma) %N
    result = divnum(d,s)

    где delta = divnum(1,beta), gamma = 1?
  • Как расширить вычисление до 2^120?

    wataru
    @wataru Куратор тега Математика
    haqz, Вы когда цитируете мои ответы, окружайте циату в тег blackquote (кнопка с кавычками в редакторе).
  • Как расширить вычисление до 2^120?

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

    beta = 0x42
    i = beta * input % N
    result = 1


    Ну так высчитайте result = divnum(input*beta %n, i). Получите 1, как и хотите. И не надо в цикле i перебирать вообще.
  • Как расширить вычисление до 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?