This commit is contained in:
biglyderv 2025-01-28 20:36:01 -05:00
parent 5790bca330
commit b27c22fdef

View file

@ -16,6 +16,7 @@
$fcount = array(); $fcount = array();
$frs = array(); $frs = array();
$matrixe = array(); $matrixe = array();
$msum_old = 0;
foreach ($result as $usern) { foreach ($result as $usern) {
$fn = $usern['username']; $fn = $usern['username'];
@ -34,6 +35,7 @@
$matrixe[$fn] = array(); $matrixe[$fn] = array();
$matrixe[$fn][$fn] = 1; $matrixe[$fn][$fn] = 1;
$msum_old++;
} }
$ch = 0; $ch = 0;
@ -52,20 +54,16 @@
if ($usern['username'] == $fn) continue; if ($usern['username'] == $fn) continue;
$dst = $fcount[$fn]; $dst = $fcount[$fn];
$matrixe[$usern['username']][$fn] = 1 + 1 / ($dst + 10) / 10; $msum_old += $matrixe[$usern['username']][$fn] = 1 + 1 / ($dst + 10) / 10;
///$pr[$usern['username']] += $pr[$fn] / ($dst + 10) / 10; ///$pr[$usern['username']] += $pr[$fn] / ($dst + 10) / 10;
} }
} }
$msum = 1;
for ($i = 0; $i < 10; $i++) { for ($i = 0; $i < 10; $i++) {
$prold = $pr; $prold = $pr;
$matrixf = $matrixe; $matrixf = $matrixe;
$msum_old = $msum; $msum = 0;
$msum = 1;
$chh = 0;
foreach ($result as $usera) { foreach ($result as $usera) {
$una = $usera['username']; $una = $usera['username'];
if (count($frs[$una]) == 0) continue; if (count($frs[$una]) == 0) continue;
@ -75,7 +73,6 @@
if ($prb < pow(1 / 1e6,1 - ($i / 50))) { if ($prb < pow(1 / 1e6,1 - ($i / 50))) {
continue; continue;
} }
$chh += $ch;
} }
} }
@ -95,7 +92,7 @@
foreach ($result as $userc) { foreach ($result as $userc) {
$unc = $userc['username']; $unc = $userc['username'];
$matrixe[$una][$unb] += $matrixf[$una][$unc] * $matrixf[$unc][$unb] / $msum_old * $chh; $matrixe[$una][$unb] += $matrixf[$una][$unc] * $matrixf[$unc][$unb];
} }
$msum += $matrixe[$una][$unb]; $msum += $matrixe[$una][$unb];
@ -103,6 +100,15 @@
} }
} }
foreach ($result as $usera) {
$una = $usera['username'];
foreach ($result as $userb) {
$unb = $userb['username'];
$matrixe[$una][$unb] *= $msum_old / $msum;
}
}
$new_sum = array_sum($pr); $new_sum = array_sum($pr);
foreach ($result as $usern) { foreach ($result as $usern) {
$h = $pr[$usern['username']]; $h = $pr[$usern['username']];
@ -110,7 +116,6 @@
} }
} }
$new_sum = array_sum($pr); $new_sum = array_sum($pr);
foreach ($result as $usern) { foreach ($result as $usern) {
$pr[$usern['username']] = $pr[$usern['username']] * 100 / $new_sum; $pr[$usern['username']] = $pr[$usern['username']] * 100 / $new_sum;