Задать вопрос
  • Как скомпилировать экзешник из гитхаба?

    wataru
    @wataru Куратор тега C++
    Hexapoc, https://stackoverflow.com/questions/47359417/how-t...

    В переводчик засуньте, если непонятно.
    Написано
  • Есть ли разница между *p++ и p++?

    wataru
    @wataru Куратор тега C++
    У ++ же приоритет выше. Так что он прикладываться будет к указателю. Но он постфиксный, так что чтение будет по тому же адресу.
    Написано
  • Как "выпрямить" кольцевой буфер c ограниченной доп.памятью?

    wataru
    @wataru Куратор тега C++
    jcmvbkbc, Действительно, прикольно.

    Интересно, что быстрее, вроде как в случае разварота каждый элемент перемещается 2 раза, а не 1, как у меня. Но у меня больше проверок и доступ к памяти не линейный.

    Наколеночный бенчмарк показал, что ваш вариант примерно в 2-2.5 раза быстрее что на мелких массивах, что на больших.
    Написано
  • Как "выпрямить" кольцевой буфер c ограниченной доп.памятью?

    wataru
    @wataru Куратор тега C++
    1eg10n, Вам все-равно не надо ничего выпрямлять. Изменили размер буфера, занулили часть 0xFE00'4000 до 0xFE00'4000+k, перетащили "начало" с позиций k до 0xFE00'4000 в позиции с 0xFE00'4000+k до 0xFE00'8000
    Написано
  • Как "выпрямить" кольцевой буфер c ограниченной доп.памятью?

    wataru
    @wataru Куратор тега C++
    1eg10n, Вообще идея так себе. Если вы хотите увеличить размер буфера, вам придется выделить память и элементы в новую память скопировать. Ну так делайте это двумя кусками. Вам не надо сначала элементы "выпрямлять", чтобы потом их одним куском в новую память засунуть. Ну, будет у вас 2 вызова memcpy вместо одного.
    Ну, или, если вы vector используете, то надо будет после увеличения размера кусок с началом данных перетащить из середины vector в конец.

    Alexandroppolus, Так нет же, у автора ограничение в 2 элемента только на время циклического сдвига массива. А сдвиг нужен. чтобы эти данные в увеличенном массиве сохранили порядок.
    Написано
  • Как "выпрямить" кольцевой буфер c ограниченной доп.памятью?

    wataru
    @wataru Куратор тега C++
    Что значит "выпрямить"?
    Написано
  • Можно ли как-то короче доказать этот факт?

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

    wataru
    @wataru Куратор тега Математика
    hint000, Нет, тут надо доказывать, потому что у вас есть lim f(x) = b. А заменяете вы в выражении "lim g(f(x))" совершенно другой набор символов "f(x)" (тут нет lim). Еще и заменяется он на y, который стремится к b, а не на b.

    Это как раз мозговыносящие свойства пределов, с ними иногда нельзя работать просто как с числами. И поэтому с нотацией надо работать аккуратно, если вы lim вдруг выкините, то уже казалось бы можно будет применять подстановку согласно логике, и все сломается.

    Но если у вас в каком-то выражении вдруг встретится именно lim f(x), то его можно даже не зная про пределы заменять на b.
    Написано
  • Можно ли как-то короче доказать этот факт?

    wataru
    @wataru Куратор тега Математика
    floppa322, Подстановка в уравнение - это логика. Если вам говорят, что C=A, то можно вместо A написать C везде, где выхотите. Просто формально заменив буковки на равное им же значение. Вы же при урпощении выражения (X+Y)^2-2XY = X^2+Y^2 при раскрытии скобочек пользуетесь тем, что (a+b)^2=a^2+2ab+b^2 ничего не доказывая?
    Написано
  • Можно ли как-то короче доказать этот факт?

    wataru
    @wataru Куратор тега Математика
    floppa322, Ну так у вас же x = f'(y). В этом случае g(f′(y), y) = 0 <=> g(x,y) = 0 ибо подстановка. Это какая-то аксиома, наверное, равные буковки можно использовать взаимозаменяемо.
    Написано
  • Как сделать безопасную многопоточную очередь?

    wataru
    @wataru Куратор тега C++
    Acaunt, Ах, а двойной unlock у вас потому что вы там заводите scoped_lock, который при выходе их функции уничтожается и вызвыает unlock внутри. И плюс к этому вы руками unlock закоментированный вызываете. Так делать нельзя. Или вы руками делаете lock()/unlock(), или (что лучше) используете scoped_lock, но руками ничего не вызваете.
    Написано
  • Как сделать безопасную многопоточную очередь?

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

    wataru
    @wataru Куратор тега Математика
    rav_pr, Я не уверен, но кажется к такому определению сложения точек на эллептической кривой пришли из диафантовых уравнений. Вот есть у вас уравнение и пара его решений. Вам хочется получить больше решений. И вот складывая вот так вы получаете какре-то другое решение. Если просто пересекать с прямой, то потом из этих 3 точек вы, как ни складывайте их, ничего нового не получите. А если результат сложения еще и отразить, то потом можно его с предыдущими точками складывать и получать что-то новое.

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

    Так-то, сложение могли бы определить как угодно, надо только что бы результат тоже на кривой лежал. Но исторически вот этот способ оказался интересен его и закрепили.
    Написано
  • Какой алгоритм можно применить при проверки числа на простое ли оно?

    wataru
    @wataru Куратор тега Алгоритмы
    Если точно, много и небольшие — то придётся держать список простых чисел


    Если нужно относительно много (сотни тысяч) не очень больших чисел (до 10 миллиардов), то какое-нибудь решето эратосфена будет быстрее всего.
    Написано
  • Разрезание многоугольника горизонтальными линиями. Алгоритм?

    wataru
    @wataru Куратор тега C++
    Alex XYZ, Там алгоритм за линию практически (логарифм от точек пересечения с прямой, а их обычно не много). Куда уж быстрее. Ну только если у вас многоугольник не выпуклый, но это не ваш случай похоже.
    Написано
  • Разрезание многоугольника горизонтальными линиями. Алгоритм?

    wataru
    @wataru Куратор тега C++
    Alex XYZ, алгоритм работает для любых наклонов прямых, там нигде горизонтальность не используется. Про + и - оффсеты не понял. Вы разрезаете фигуру на 2 части? Или пересекаете с несколькими прямоугольниками?
    Написано
  • Си как получить доступ к локальной статической переменной?

    wataru
    @wataru
    thomas_king, можно и так, но тогда эта переменная нигде кроме increment недоступна.
    Написано
  • Разрезание многоугольника горизонтальными линиями. Алгоритм?

    wataru
    @wataru Куратор тега C++
    Alex XYZ, Ну я же вам даже алгоритм написал, чтобы не думать над случаями.
    Написано
  • Как найти угол для поворота башни на цель?

    wataru
    @wataru
    U235U235, Во всех почти языках есть такая функция, которая сразу все случаи разбирает, да. Но вопрос был по тегу "математика".
    Написано
  • Всегда ли DP можно представить в виде DAG?

    wataru
    @wataru Куратор тега Алгоритмы
    floppa322,
    Если я правильно понял о чём идёт речь, то можно рассуждать следующим образом


    Да, в таком смысле так.

    Как-то сталкивался с задачей, где были циклы, но небольшие, компоненты сильной связности были не больше 10


    Тут принципиальная разница, ибо какая бы у вас формула не была и каким бы не был граф, пока граф ациклический, у вас работает один и тот же алгоритм. Можно универсальный солвер написать, который принимает граф ифункцию. Он и называется ДП. Если же есть циклы, то там уже в зависимости от конкретной формулы и формы циклов будет свой уникальный алгоритм решения. Поэтому эти решения некороректно считать ДП.
    Написано