Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中基于正态分布的年龄匹配算法_Php_Algorithm_Math_Probability - Fatal编程技术网

php中基于正态分布的年龄匹配算法

php中基于正态分布的年龄匹配算法,php,algorithm,math,probability,Php,Algorithm,Math,Probability,我认为这可能是数学上的正态分布问题,但我想用php编写代码。 这就是问题所在 在我的交友网站上,我想为每个男人介绍两个女人。 存在年龄基础问题。 男人就像-8+4岁的女人。(当然,每个国家的情况都可能不同。但在中国,大多数夫妇都在这一范围内。) 因此,男性比女性大两岁时的匹配分数(-2)是最高值,而对于-8~+4岁的女性,匹配覆盖率必须达到98% $min = -8; $max = 4; $coverage_percent = 0.98f; function matching_score($m

我认为这可能是数学上的正态分布问题,但我想用php编写代码。 这就是问题所在

在我的交友网站上,我想为每个男人介绍两个女人。 存在年龄基础问题。 男人就像-8+4岁的女人。(当然,每个国家的情况都可能不同。但在中国,大多数夫妇都在这一范围内。) 因此,男性比女性大两岁时的匹配分数(-2)是最高值,而对于-8~+4岁的女性,匹配覆盖率必须达到98%

$min = -8;
$max = 4;
$coverage_percent = 0.98f;

function matching_score($man_age, $woman_age)
{
  $score = <- some normal distribution function ->;
  return $score;
}
$min=-8;
$max=4;
$coverage_percent=0.98f;
功能匹配得分($man\u-age,$woman\u-age)
{
$score=;
返回$score;
}
我会为每个男人挑选两个最高分数的女人

这种方法对所有夫妇都有98%的概率


php中是否有快速正态分布概率函数?

我所知道的编程语言没有内置的正态分布函数,因此必须获得库或自行实现。是Excel和Matlab等更高级别的环境提供了这种功能。我不知道PHP,但下面是我在C#中使用的一个正态分布实现,所以您可能可以转换为PHP。它有CDF(累积分布函数)和PDF(概率分布函数)

公共类正常{
public const double INVRTP=.398942280401433;//根2π的倒数!!
私人常数双y0=0.2316419,
a0=0.31938153,
a1=-0.356563782,
a2=1.781477937,
a3=-1.821255978,
a4=1.330274429;
公共静态双标准CDF(双x){
双y=1.0/(1+y0*系统数学Abs(x));
y=1.0-正态PDF(x)*(y*(a0+y*(a1+y*(a2+y*(a3+y*a4())));

return(x问题不清楚,尽管使用查询将所有计算存储在数据库中,当您需要时,只需获取
我想为每个男人挑选两个女人
男孩o男孩,如果一个人能管理一个,那就是一个成就!两个将是一个灾难对不起,我的英语很差,我将pick改为介绍:)
public class Normal {
    public const double INVRTP = .398942280401433; // INVerse of Root Two Pi  !!
    private const double    y0  = 0.2316419,
                            a0 = 0.31938153,
                            a1 = -0.356563782,
                            a2 = 1.781477937,
                            a3 = -1.821255978,
                            a4 = 1.330274429;
    public static double NormalCDF(double x) {
        double y = 1.0 / (1 + y0 * System.Math.Abs(x));
        y = 1.0 - NormalPDF(x) * (y * (a0 + y * (a1 + y * (a2 + y * (a3 + y * a4)))));
        return (x <= 0.0) ? 1.0 - y : y;
    }
    public static double NormalPDF(double x) {
        return INVRTP * System.Math.Exp(-x * x / 2.0);
    }
}