数学扩展
在线手册:中文  英文

Mathematical Functions


数学扩展
在线手册:中文  英文

用户评论:

Hayley Watson (2013-01-29 19:47:59)

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([32212], [0100]);
echo  
$fahr2celsius(98.6); // 37°C

?>

Anonymous: (2008-12-22 23:20:07)

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;
}
?>

Sanjay Ichalkaranje (2008-10-11 13:34:01)

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;
}
?>

易百教程