- 1
- 2
- 3
- 4
function midVal(X, Y)
{
return (Math.max(X, Y) - Math.min(X, Y)) / 2 + Math.min(X, Y);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−160
function midVal(X, Y)
{
return (Math.max(X, Y) - Math.min(X, Y)) / 2 + Math.min(X, Y);
}
Это среднее арифметическое один один чел так считает.
Взято отсюда: http://www.gamedev.ru/flame/forum/?id=137879&page=4#m47
Тема сама по себе весёлая.
а как он ср.геометрическое считает?..
return Math.sqrt(Math.max(X, Y) / Math.min(X, Y)) * Math.min(X, Y);
--
"... Предлагаю рассчитать задачу с учётом теории относительности, время брать относительно машины.
Также следует учесть, что при изменении скорости между 1 и 2 кругом система отсчёта станосится неинерциальной, и там классические преобразования не катят. ..."
---
тут тоже всем миром решать будем :))
--
(кстати это в JavaScrыpt тоже прокатит)
:)
Полистал все странички. После ответа TarasB на первой странице всё остальное можно считать флудом.
Код недостаточно индусский. Надо предложить такую же формулу для среднего гармонического и решать методом Ньютона как нелинейное уравнение.
http://govnokod.ru/4221#comment46988
Для гармонического надо хитрее!
2*Math.max(X, Y)/(1 + Math.max(X, Y)/Math.min(X, Y))
геометрия Римана начинает рулить...
на втором круге её обходит геометрия Лобачевского...
такой накал страстей... такой научный тык...
видимо придётся проводить опыты
полиморфизм в химии...
--
:)
не потребуется. сказал бы, но тред уже заглох
На 32-разрядные числа действует так же, как деление на 3.
это один из стандартных способов - ниче особенного, тем более мы говорили о оптимизации деления на три сдвигом
мой вариант - лучше и быстрее, хоть и требует больше сил для реализации и неуниверсален.
сумма бесконечно убывающей прогресии с q=1/4
Это то же самое, что умножение на 555555555, только дольше.
Так вот, заменять умножение сдвигами имеет смысл, только если двоичное разложение множителя содержит не более 3 единиц.
Поэтому ПИ ляпнул не подумав:
> мой вариант - лучше и быстрее
во-первых я тогда глянул в интеловскую документацию - там указано кажись (6,7)-9 тактов
но у моего метода есть одно крайне важное преимущество -
им можно довльно просто делить > чем 32 битные числа на 3 на 32-разрядных регистрах, а вот через умножение так не выйдет
>только если двоичное разложение множителя содержит не более n единиц
>Поэтому ПИ ляпнул не подумав:
в общем тут ты прав.
Как они предлагают умножать и обращать полиномы, а, следовательно, и числа, с помощью преобразований Фурье — просто жесть!
middle_price = round((middle_price + price)/2)
Так в цикле считается среднее арифметическое нескольких чисел
(1 + 5) / 2 = 3
(5 - 1) / 2 + 1 = 3
сорри. я не мог этого не написать. вопрос риторический. ответ мне известен
а еще более в общем Среднее Колмогорова рулит