评论排序算法(评论排序算法是什么)
时间:2022-12-15 阅读:13
代码
#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
网友评论