-
Быстрый обратный корень на Java
Fast Inverse Square Root, он же Fast InvSqrt() или 0x5f3759d5 — способ вычисления обратного квадратного корня из числа = 1/sqrt(x). Изобретен еще в 90-х годах. Если верить википедии, то этот алгоритм использовался в Quake III. Главная фишка метода в использовании «магической» константы — 0x5f3759d5, с помощью которой можно получить первое приближенное значение. Затем обычным методом Ньютона получаем улучшенное приближение. Подробнее можно прочитать здесь и здесь. public static float invSqrt(float x) { float xhalf = 0.5f*x; // x пополам int i = Float.floatToIntBits(x); // битовое представление числа. i = 0x5f3759d5 — (i >> 1); // отрицательные x не волнуют, т.к. из…
-
Принцип работы FFT и Scala
Разбор алгоритма быстрого преобразования фурье (он же Fast Fourier transform, он же FFT). Целью публикации является отобразить суть алгоритма, а не создание быстрой по скорости работы реализации. Т.к. в этой программе я буду интенсивно использовать объекты вместо примитивных типов, а также рекурсию, скорость работы будет заведомо уступать многим другим реализациям FFT, которые можно сейчас найти в интернете в огромном количестве в открытом доступе.
-
printf
Небольшой справочник «для себя» по работе с джавным printf(). Для простоты текста заменил System.out.printf() на printf(). Базовые конструкции. %s → String или toString(). printf(«Hello %s!», «World»); // «Hello World!» %n → Перенос строки. Byte, Short, Int, Long. %d → В десятеричном. %x → В шестнадцатеричном. %7d → В десятеричном. Минимальная ширина строки 7 знаков. printf(«%7d», 1); // » 1″ %07d → Минимальная ширина строки 7 знаков. Начало забить нулями. printf(«%07d», 1); // «0000001» Float, Double. %f → Десятичное число с точкой. %e → Десятичное число с точкой и экспонентой. %.10f → С точностью 10 знаков после запятой. printf(«%.10f», Math.PI); //…
android (11) blog (2) coworking (3) database (5) dce vm (1) design (2) design pattern (2) excel (1) gradle (1) groovy (1) gwt (3) gwt-ext (2) hibernate (2) image (3) Jar (1) Java (79) JavaScript (4) json (1) lambda (1) linux (6) maven (6) multimedia (2) mustache (1) mysql (4) netbeans (10) pdf (1) rdf (2) rmi (1) Scala (17) security (1) svg (1) svn (4) template system (1) Tomcat (4) tv (1) uml (9) web (1) xml (1) архитектор (3) дизайн (1) комикс (1) компьютер (1) места (2) программирование (59) работа (7)