Главная | Руководство по MySQL | MySQL Manual | Документация к HTTP серверу Apache | Apache HTTP Server Documentation | downloads | faq

искать  Язык: Английский


Математические функции


User Contributed Notes
Math
Anonymous:
23-Dec-2008 07:20
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
11-Oct-2008 08:34
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;
}
?>
 

 
credits | contact