note 48783 added to ref.math
| From: | thearbitcouncil at gmail dot com | Date: | Thu, 06 Jan 2005 22:32:23 +0000 |
| Subject: | note 48783 added to ref.math | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-82871@lists.php.net to get a copy of this message | ||
Two functions I didn't find elsewhere... one to compute mean of an array of numbers, and
another to computer variance of a sample of numbers. Both take an array of numbers as arguments. Not
much error checking, or optimization...
(note: variance function uses the average function...)
<?php
function average($arr)
{
if (!count($arr)) return 0;
$sum = 0;
for ($i = 0; $i < count($arr); $i++)
{
$sum += $arr[$i];
}
return $sum / count($arr);
}
function variance($arr)
{
if (!count($arr)) return 0;
$mean = average($arr);
$sos = 0; // Sum of squares
for ($i = 0; $i < count($arr); $i++)
{
$sos += ($arr[$i] - $mean) * ($arr[$i] - $mean);
}
return $sos / (count($arr)-1); // denominator = n-1; i.e. estimating based on sample
// n-1 is also what MS Excel takes by default in the
// VAR function
}
echo variance(array(4,6,23,15,18)); // echoes 64.7...correct value :)
?>
----
Manual Page -- http://www.php.net/manual/en/ref.math.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+48783
Delete -- http://master.php.net/manage/user-notes.php?action=delete+48783&report=yes
Reason: bad code -- http://master.php.net/manage/user-notes.php?action=delete+48783&report=yes&reason=bad+code
Reason: spam -- http://master.php.net/manage/user-notes.php?action=delete+48783&report=yes&reason=spam
Reason: useless example -- http://master.php.net/manage/user-notes.php?action=delete+48783&report=yes&reason=useless+example
Reason: contains commercial links -- http://master.php.net/manage/user-notes.php?action=delete+48783&report=yes&reason=contains+commercial+links
Reason: useless note -- http://master.php.net/manage/user-notes.php?action=delete+48783&report=yes&reason=useless+note
Reject -- http://master.php.net/manage/user-notes.php?action=reject+48783&report=yes
Search -- http://master.php.net/manage/user-notes.php