Лево от право отличить не можешь? Cено-солома: Циферка 3 в твоем нике с правого конца, а буква k - с левого. Соответсвтено, сдвиг влево - apysta13k: на место первого символа встает второй, на место второго - третий и так далее.
В вопросе у тебя сдвиг вправо, я написал, как сделать из него сдвиг влево (например тупой заменой "arr[x]" => "arr[n-1-x]" в цикле.
Артур Гранд, А, ну тогда все просто - поверните мысленно всю вторую грань так, чтобы она стала параллельна синему вектору вокруг ребра. Найдите угол на новую зеленую точку (куда она провернется). Для этого можно взять любую точку на ребре, возьмите с нее вектор на дальнюю зеленую точку и поверните этот вектор вокруг ребра на угол между нормалями двух граней. Отложите новый вектор от той точки на ребре.
Torento20345, Производная функции f(x) - пересекает 0 только в одной точке. До этого она отрицательная, а потом положительная. Значит f(x) - имеет один минимум. Если мы ограничены условием, что x - целое, то минимум - одна из ближайших к оптимальному x значений.
Или 22, или 23 в вашем примере. Нужно подсчитать сколько ходов там будет в итоге и выбрать минимум из двух вариантов.
При x=22, n = 500 будет. floor(n/x) + x = floor(500/22) + 22 = 22 + 22 = 44
При x=23, n = 500 будет. floor(n/x) + x = floor(500/23) + 23 = 21 + 23 = 44
Тут без разницы, сколько брать 22 или 23. Всегда ли это так - мне лень думать. Преберите 2 варинта в вашей программе и найдите лучший.
WebDev, даже код на php иногда можно ускорить в сотни раз, если использовать правильный алгоритм и структуры данных. Это с запасом покроет медленность этого решения на пхп против быстроты тупого решения на встроенных функциях.
Да, такой же код на си будет в несколько раз быстрее, но если у вас нет возможности переписать все или только сложную часть на си, то придется довольствоваться этим.
mIka01, Напишите все-таки, что за триангуляцию вам надо. Пока под условие подходит вернуть пустой массив, или {{1,2,3},{4,5,6},...}. Тоже триангуляции.
Вам точно триангуляция Делоне нужна или вам просто разбить на тругольники без пересечений, чтобы все точки были состояли в треугольниках?
jcmvbkbc, Просто повторение фраз из стандарта, без какой-либо попытки их осмыслить, обычно плохо кончаются (второй пример там).
Стандарт лишь говорит, что нет никакого UB, и вычисления производятся по модулю 2^n. В русском языке термина для "underflow" особо нет, поэтому я использовал слово "переполнение".
Если проблема "чтобы не было отрицательных значений" - то предлагать unsigned - это весьма необдуманное решение.
jcmvbkbc, Проблема ТС в том, что x%m при отрицательном m выдаст неверное, отрицательное число. Да, с тем же остатком, но в вычислениях нужно число от 0 до m-1. Правильное решение этой проблемы - прибавить m, если число отрицательно, или всегда прибавлять m и брать по модулю опять. ТС же, наобум вставил модуль. Если же тупо заменить все переменные на unsigned int, то там будет переполнение и, фактически, прибавление 2^32 к ответу. Что тоже испортит ответ, если только m - не степень двойки.
fronttrty, Давайте сначала. Запишите формулу хеша на отрезке l..r. Запишите формулу для каждого prefhash и powp. Запишите как ваш getshash считает, приравняйте, посмотрите, то ли у вас получилось.
Лево от право отличить не можешь? Cено-солома: Циферка 3 в твоем нике с правого конца, а буква k - с левого. Соответсвтено, сдвиг влево - apysta13k: на место первого символа встает второй, на место второго - третий и так далее.
В вопросе у тебя сдвиг вправо, я написал, как сделать из него сдвиг влево (например тупой заменой "arr[x]" => "arr[n-1-x]" в цикле.