Zruty wrote:QUOTE (Zruty @ Jan 19 2009, 12:16 PM) Thanks for eventual positive attitude

Good luck to you in your further work.
no. As you can see, sigma is present in all the equations as sigma^2, so making it negative has no effect.
And, as sigma is essentially a possible deviation of your 'true' rating from Mu, there's no sense in it being negative at all.
And, I don't follow your logic about 'suddenly' improving a TON. Do you mean that player starts winning all the games? I don't see how the rating goes down in this case...
do u no wat absolute values are?
NEVER NEGATIVE!
according to the equation the higher ur standard deveation aka sigma, the lower your rank will be.
Therefore, if you suddenly get better your sigma will increase, as well as if you suddenly get worse, then ur sigma will increase.
thus leading to a decrease in rank.
Rather than lazily squaring the sigma, which really isn't needed... ya put |var| to make it an absolute value... depending on the programing language... but there should be an absolute function, if not, than one can be made.
anyway... rather than squaring it, you have to seperate the negatives and the positives.
then you need to add them, thus negative+positive = +-
once that has been completed, the equation needs to be fixed...
however, idealy, you wouldn't use only one equation, you would implement some of those programming skills.
here is how ya would do it for those who can program...
btw, it says the site was done in php, so im gonna asume it was made using php and mysql.
Code: Select all
<?php
//connection junk here.
$positiveSigma=0;
$negativeSigma=0;
$rank = 0;
$mu = 0;
$query="select * from `player`';
$result=mysql_query($query);
if($row=mysql_fetch_array($result))
{
$mu = $row['mu']; // define the players current mu
}
$query="select * from `games`";
$result=mysql_query($query);
while($row=mysql_fetch_array($result))
{
$count+=0;
if($mu < $row['points'])// im not sure what sigma is based on... so ill use points.
{
$positiveSigma += $row['points'];
}
else if($row['mu']< $row['points'])
{
$negativeSigma += $row['points'];
}
else
{
$count-=1; // gonna ignore the values with the same as the mu, to increase processing speed
}
}
$sigma = $positiveSigma - $negativeSigma;
$sigma = $sigma/$count; // there is no need to use absolute values now, because there abilities are decreasing if the negative is greater than the sigma.
// forumula time
$rank = 0.6($mu +3($sigma)) // the numbers may need to be adjusted slightly to keep the same ranks.
?>
my appoligizes if i left a couple typos or bugs... i didnt use my editor to write this...
if i did, well, ya get the point, it should show you almost exactly how.