评论排序算法
站内热度 站内前 20%
3.6万 次浏览
代码
#include
#include
#include
double pnorm(double qn)
{
const double b[] =
{
1.570796288, 0.03706987906, -0.8364353589e-3,
-0.2250947176e-3, 0.6841218299e-5, 0.5824238515e-5,
-0.104527497e-5, 0.8360937017e-7, -0.3231081277e-8,
0.3657763036e-10, 0.6936233982e-12
};
double w1, w3;
if (qn < 0.0 || qn > 1.0 || qn == 0.5)
return 0.0;
w1 = qn;
if (qn > 0.5)
//return -pnorm(1 - qn);
w1 = 1.0 - w1;
w3 = -log(4.0 * w1 * (1.0 - w1));
w1 = b[0];
for (int i = 1; i < 11; i++)
{
w1 += b[i] * pow(w3, i);
}
if (qn > 0.5)
return sqrt(w1 * w3);
return -sqrt(w1 * w3);
}
double ci_lower_bound(double pos, int total, float power = 0.10) //Sum
{
if (!total) return 0.0;
if (pos>total) return 1.0;
double z = pnorm(1.0 - power / 2);
double phat = pos / total;
return (phat + z * (z / (2*total) - sqrt((phat*(1 - phat) + z*z / (4*total)) / total)) ) / (1 + z*z / total);
}
int main()
{
printf("%fn",ci_lower_bound(200, 220)); // 总和和好评
getchar();
}VB6
Option Explicit Private Function pnorm(qn As Double) As Double Dim b Dim i As Integer b = Array(1.570796288, 0.03706987906, -0.0008364353589, -0.0002250947176, 0.000006841218299, 0.000005824238515, -0.00000104527497, 8.360937017E-08, -3.231081277E-09, 3.657763036E-11, 6.936233982E-13) Dim w1 As Double Dim w3 As Double If qn 1# Or qn = 0.5 Then pnorm = 0# End If w1 = qn If qn > 0.5 Then w1 = 1 – w1 End If w3 = -Log(4# * w1 * (1# – w1)) w1 = b(0) For i = 1 To 10 w1 = b(i) * w3 ^ i + w1 Next i If qn > 0.5 Then pnorm = Sqr(w1 * w3) End If pnorm = -Sqr(w1 * w3) End Function Private Function ci_lower_bound(pos As Double, total As Integer, power As Double) As Double If power = 0 Then power = 0.1 If total = 0 Then ci_lower_bound = 0# If pos > total Then ci_lower_bound = 1# Dim z As Double Dim phat As Double z = pnorm(1# – power / 2) phat = pos / total ci_lower_bound = (phat + z * (z / (2 * total) – Sqr((phat * (1 – phat) + z * z / (4 * total)) / total))) / (1 + z * z / total) End Function Private Sub Form_Click() MsgBox ci_lower_bound(200, 220, 0) End Sub
相关文档
评论0
按时间排序 · 回复会嵌套显示还没有评论。有疑问、补充或指正,直接写在下面。
