В природе часто встречается так называемый экспоненциальный рост — чем больше клеток делятся, тем быстрее их становиться больше. Чем больше у вас денег в банке, тем большую прибыль они приносят. Давайте сразу на примере.

На графике видим, что скорость роста экспоненциального графика (ex) увеличивается быстрее. А все потому, что число e — это т.н. число Эйлера, приблизительно равное 2,71828 (эксель округляет до 2,71) больше числа 2, которое возводится в указанную степерь (степерь указана в поле А).
Давайте разберемся на примере третьей строки:
Как видите поле C называется как ex это значит, что мы будем число Эйлера возводить в указанную степень (знак ^ означает возведение в степень, степень указана в поле A).
B3 = 2^A3 (читать так: 2 в степени ячейки A3) = 2^0.25=1.19 (видим округление)
C3 = 2.71^A3 (читать так: 2.71 в степени ячейки A3) = 2.71^0.25=1.28 (видим округление)
Видим, что производная (скорость роста или уменьшения) функции равна самой функции, т.е. скорость увеличения функции равна значению функции.
Значениями типа integer являются целые числа. Целые числа могут быть указаны в следующих системах счисления:
Числа с плавающей точкой также можно представлять в виде экспоненциальной записи. Экспоненциальная запись означает число, умноженное на 10 в указанной степени. Экспоненциальная запись состоит из числа, за которым ставится прописная или строчная буква E, после которой можно поставить необязательный знак + или - и далее показатель степени числа 10:
$num1 = 3.52e5; // если вручную то считать, то 3.52*10^5 = 352000
$num2 = 7E-4; // если вручную то считать, то 7*10^-4 = 0.0007
Двоичное представление чисел с плавающей точкой неспособно обеспечить их точность. Двоичное представление чисел c плавающей точкой в PHP определяется согласно стандарту IEEE-754. Факт того, что число c плавающей точкой не может быть представлено точно, может приводить к проблемам, например при сравнении этих чисел:
$x = 0.3 - 0.2;
$y = 0.2 - 0.1;echo ($x == $y), "<br>"; // false
echo ($x == 0.1), "<br>"; // false
echo ($y == 0.1); // true
Эта проблема не является чем-то характерным для PHP, она проявляется во всех языках программирования, где используется двоичное представление чисел с плавающей точкой. Если необходима высокая точность представления чисел с плавающей точкой, нужно использовать математические функции произвольной точности:
$x = bcsub(0.3, 0.2, 1);
$y = bcsub(0.2, 0.1, 1);echo ($x == $y), "<br>"; // true
echo ($x == 0.1), "<br>"; // true
echo ($y == 0.1); // true
Некоторые функции при работе с числами могут возвращать специальное значение NAN. Данное значение означает, что какая-то используемая математическая функция вышла за пределы допустимого диапазона значений в операциях с плавающей точкой или не смогла обработать свои входные данные. Значение NAN является сокращением от Not a Number (не число):
$nan = acos(8);
echo $nan;
Значение NAN обладает одной особенностью — оно не равно никакому значению, в том числе и другому NAN. Это значит, что нельзя использовать проверку $nan == NAN, чтобы определить, является ли значение переменной $nan значением NAN. Вместо этого следует выполнить проверку $nan != $nan. Эта проверка вернёт TRUE тогда и только тогда, когда $nan имеет значение NAN. Аналогичную проверку можно выполнить с помощью функции is_nan(). Она возвращает TRUE, только если аргумент имеет значение NAN.
Помимо этого, любая арифметическая операция с NAN, например, NAN / 10 всегда возвращает NAN.
Слышали о таком принципе? Он гласит: «20% усилий приносят 80% результата». На принципе Парето построен например ABC анализ запасов. Лучшее определение для запоминания, мне кажется:
20% любителей пива употребляют 80% всего пива
Уверен, каждый из Вас замечал, что примерно за 20% времени можно создать 80% продукта (в количественном эквиваленте), далее работаешь на качество. Т.е. еще 80% времени допиливаешь, ищешь ошибки, настраиваешь. Я даже слышал, что говорят «разработка в стадии экспоненты» — т.е. в стадии приближения к идеалу.
При таком «допиливании» проекта важно вовремя остановиться, ведь продукт никогда не будет идеальным. Поэтому заранее определитесь какое качество вы хотели бы получить в конце. Если делаете не себе, обязательно соберите требования с заказчика. Принцип выглядит примерно так:
