Provides a function to rescale numbers so that the range [a,b] fits into the range [c,d].
<?php
function rescale($ab, $cd)
{
list($a, $b) = $ab;
list($c, $d) = $cd;
if($a == $b)
{
trigger_error("Invalid scale", E_USER_WARNING);
return false;
}
$o = ($b * $c - $a * $d) / ($b - $a);
$s = ($d - $c) / ($b - $a);
return function($x)use($o, $s)
{
return $s * $x + $o;
};
}
$fahr2celsius = rescale([32, 212], [0, 100]);
echo $fahr2celsius(98.6); // 37°C
?>
Mathematical Functions
- Wstęp
- Instalacja/Konfiguracja
- Stałe predefiniowane
- Math Funkcje
- abs — Wartość bezwględna (moduł z liczby)
- acos — Oblicza arcus cosinus liczby
- acosh — Area cosinus hiperboliczny
- asin — Oblicza arcus sinus liczby
- asinh — Area sinus hiperboliczny
- atan2 — Arcus tangens dwóch zmiennych
- atan — Oblicza arcus tangens liczby
- atanh — Area tangens hiperboliczny
- base_convert — Konwertuje liczbę pomiędzy różnymi systemami liczbowymi
- bindec — Konwertuje liczbę dwójkową na dziesiętną
- ceil — Zaokrągla ułamki w górę
- cos — Oblicza cosinus kąta
- cosh — Cosinus hiperboliczny
- decbin — Konwertuje liczbę dziesiętną do dwójkowej
- dechex — Konwersja liczby dziesiętnej do szesnastkowej
- decoct — Konwersja liczby dziesiętnej do ósemkowej
- deg2rad — Przelicza stopnie na radiany
- exp — Oblicza eksponentę liczby e
- expm1 — Zwraca exp(liczba) - 1, obliczoną w taki sposób, że wartość jest dokładna, nawet jeśli liczba jest bliska zeru
- floor — Zaokrągla ułamki w dół
- fmod — Returns the floating point remainder (modulo) of the division of the arguments
- getrandmax — Największa możliwa liczba losowa
- hexdec — Konwersja liczby szesnastkowej do dziesiętnej
- hypot — Oblicza długość przeciwprostokątnej trójkąta prostokątnego
- is_finite — Sprawdza czy wartość jest prawidłową skończoną liczbą
- is_infinite — Sprawdza czy wartość jest nieskończona
- is_nan — Sprawdza, czy wartość nie jest liczbą
- lcg_value — Złożony przystający generator liniowy
- log10 — Logarytm dziesiętny
- log1p — Zwraca log(1 + liczba), obliczony w taki sposób, że wartości są dokładne, nawet, jeśli liczba jest bliska zeru
- log — Logarytm naturalny
- max — Znajduje największą liczbę
- min — Znajduje najmniejszą wartość
- mt_getrandmax — Największa możliwa liczba losowa
- mt_rand — Wygeneruj lepszą liczbę losową
- mt_srand — Inicjuje generator Mersenne Twister
- octdec — Konwersja liczby ósemkowej do dziesiętnej
- pi — Wartość liczby Pi
- pow — Potęgowanie
- rad2deg — Przelicza radiany na stopnie.
- rand — Generuje losową liczbę stałoprzecinkową
- round — Zaokrągla liczbę zmiennoprzecinkową
- sin — Oblicza sinus kąta
- sinh — Sinus hiperboliczny
- sqrt — Pierwiastek kwadratowy
- srand — Inicjuje generator liczb losowych
- tan — Oblicza tangens kąta
- tanh — Tangens hiperboliczny
Hayley Watson ¶
3 months ago
Sanjay Ichalkaranje ¶
4 years ago
This is the only function I searched that I did not find anywhere on the Internet. This function calculates standard normal cumulative distribution for a particular value. This is NORMSDIST(x) in MS-Excel or OpenOffice.org Calc program.
<?
function normalDist($zScore) {
$p = floatval(0.2316419);
$b1 = floatval(0.319381530);
$b2 = floatval(-0.356563782);
$b3 = floatval(1.781477937);
$b4 = floatval(-1.821255978);
$b5 = floatval(1.330274429);
$t = 1/(1 + ($p * floatval($zScore)));
$zx = (1/(sqrt(2 * pi())) * (exp(0 - pow($zScore, 2)/2)));
$px = 1 - floatval($zx) * (($b1 * $t) + ($b2 * pow($t, 2)) + ($b3 * pow($t, 3)) + ($b4 * pow($t, 4)) + ($b5 * pow($t,5)));
return $px;
}
?>
Anonymous: ¶
4 years ago
Here is a simple number digit counter function, I used it to check if a number is a palindrome or not, Plus a Distance function, slope formula, sum from one to an integer, sum of odd numbers from one to specified number, and last but not least the sum of the squares of the values of the sine of x, and the cosine of y.
<?php
function digit_count($num){
for($i=0;pow(10,$i)<=$num;$i++){
if(pow(10,$i+1)>$num){
$num_digits = $i+1;
}
}
return $num_digits;
}
function distance($x_1,$y_1,$x_2,$y_2){
return sqrt(pow($x_1-$x_2,2)+pow($y_1-$y_2,2));
}
function slope($x_1,$y_1,$x_2,$y_2){
return ($y_2-$y_1)/($x_2-$x_1);
}
// example sum(20)=210=1+2+3+...+20
function sum($x){
return ($x)($x+1)/2;
}
// example odd(15)=225=1+3+5+7+9+...+15
function odd($x){
if(($x%2) == 0){
$x-=1;
}
$y=($x+1)/2;
return pow($y,2); //Same as $y*$y;
}
function ($x,$y){
if($x=90-$y){
echo "(Sine of $x)^2 + (Cosine of $y)^2=1";
$value = 1;
}else{
$value = pow(sin($x),2)+pow(cos($y),2);
}
return $value;
}
?>
