#!/usr/bin/perl

$damp = 0.85;
$a = $b = $c = $d = $e = $f = $g = $h = 0;
$i = 40; # loop 40 times

# forward links
# a -> b,c,d		- 3 outgoing links	- home
# b -> a			- 1 outgoing link	- about
# c -> a			- 1 outgoing link	- products
# d -> a,e,f,g,h	- 5 outgoing links	- links
# e,f,g,h -> a		- 1 outgoing link   - regain the lost votes

# i.e. "backward" links (what's pointing to me?)
# a <= b, c, d
# b,c,d <= a
# e,f,g,h <= d
while ($i--) {
    printf(
    	"a: %.5f b: %.5f c: %.5f d: %.5f e: %.5f f: %.5f g: %.5f h: %.5f\n",
    	$a, $b, $c, $d, $e, $f, $g, $h
    );
	$a = 1 - $damp + $damp * ($b + $c + $d/5 + $e + $f + $g + $h);
	$b = 1 - $damp + $damp * ($a/3);
	$c = 1 - $damp + $damp * ($a/3);
	$d = 1 - $damp + $damp * ($a/3);
	$e = $f = $g = $h = 1 - $damp + $damp * ($d/5);
}
printf("Average pagerank = %.4f\n", ($a + $b + $c + $d + $e + $f + $g + $h) / 8);

Outputs

a: 0.15000 b: 0.19250 c: 0.19250 d: 0.19250 e: 0.18273 f: 0.18273 g: 0.18273 h: 0.18273
a: 1.13124 b: 0.47052 c: 0.47052 d: 0.47052 e: 0.22999 f: 0.22999 g: 0.22999 h: 0.22999
a: 1.81183 b: 0.66335 c: 0.66335 d: 0.66335 e: 0.26277 f: 0.26277 g: 0.26277 h: 0.26277
a: 2.28388 b: 0.79710 c: 0.79710 d: 0.79710 e: 0.28551 f: 0.28551 g: 0.28551 h: 0.28551
a: 2.61130 b: 0.88987 c: 0.88987 d: 0.88987 e: 0.30128 f: 0.30128 g: 0.30128 h: 0.30128
a: 2.83840 b: 0.95421 c: 0.95421 d: 0.95421 e: 0.31222 f: 0.31222 g: 0.31222 h: 0.31222
a: 2.99591 b: 0.99884 c: 0.99884 d: 0.99884 e: 0.31980 f: 0.31980 g: 0.31980 h: 0.31980
a: 3.10517 b: 1.02980 c: 1.02980 d: 1.02980 e: 0.32507 f: 0.32507 g: 0.32507 h: 0.32507
a: 3.18094 b: 1.05127 c: 1.05127 d: 1.05127 e: 0.32872 f: 0.32872 g: 0.32872 h: 0.32872
a: 3.23350 b: 1.06616 c: 1.06616 d: 1.06616 e: 0.33125 f: 0.33125 g: 0.33125 h: 0.33125
a: 3.26996 b: 1.07649 c: 1.07649 d: 1.07649 e: 0.33300 f: 0.33300 g: 0.33300 h: 0.33300
a: 3.29524 b: 1.08365 c: 1.08365 d: 1.08365 e: 0.33422 f: 0.33422 g: 0.33422 h: 0.33422
a: 3.31278 b: 1.08862 c: 1.08862 d: 1.08862 e: 0.33507 f: 0.33507 g: 0.33507 h: 0.33507
a: 3.32494 b: 1.09207 c: 1.09207 d: 1.09207 e: 0.33565 f: 0.33565 g: 0.33565 h: 0.33565
a: 3.33338 b: 1.09446 c: 1.09446 d: 1.09446 e: 0.33606 f: 0.33606 g: 0.33606 h: 0.33606
a: 3.33923 b: 1.09612 c: 1.09612 d: 1.09612 e: 0.33634 f: 0.33634 g: 0.33634 h: 0.33634
a: 3.34329 b: 1.09727 c: 1.09727 d: 1.09727 e: 0.33654 f: 0.33654 g: 0.33654 h: 0.33654
a: 3.34611 b: 1.09806 c: 1.09806 d: 1.09806 e: 0.33667 f: 0.33667 g: 0.33667 h: 0.33667
a: 3.34806 b: 1.09862 c: 1.09862 d: 1.09862 e: 0.33676 f: 0.33676 g: 0.33676 h: 0.33676
a: 3.34941 b: 1.09900 c: 1.09900 d: 1.09900 e: 0.33683 f: 0.33683 g: 0.33683 h: 0.33683
a: 3.35035 b: 1.09927 c: 1.09927 d: 1.09927 e: 0.33688 f: 0.33688 g: 0.33688 h: 0.33688
a: 3.35101 b: 1.09945 c: 1.09945 d: 1.09945 e: 0.33691 f: 0.33691 g: 0.33691 h: 0.33691
a: 3.35146 b: 1.09958 c: 1.09958 d: 1.09958 e: 0.33693 f: 0.33693 g: 0.33693 h: 0.33693
a: 3.35177 b: 1.09967 c: 1.09967 d: 1.09967 e: 0.33694 f: 0.33694 g: 0.33694 h: 0.33694
a: 3.35199 b: 1.09973 c: 1.09973 d: 1.09973 e: 0.33695 f: 0.33695 g: 0.33695 h: 0.33695
a: 3.35214 b: 1.09977 c: 1.09977 d: 1.09977 e: 0.33696 f: 0.33696 g: 0.33696 h: 0.33696
a: 3.35224 b: 1.09980 c: 1.09980 d: 1.09980 e: 0.33697 f: 0.33697 g: 0.33697 h: 0.33697
a: 3.35232 b: 1.09982 c: 1.09982 d: 1.09982 e: 0.33697 f: 0.33697 g: 0.33697 h: 0.33697
a: 3.35237 b: 1.09984 c: 1.09984 d: 1.09984 e: 0.33697 f: 0.33697 g: 0.33697 h: 0.33697
a: 3.35240 b: 1.09985 c: 1.09985 d: 1.09985 e: 0.33697 f: 0.33697 g: 0.33697 h: 0.33697
a: 3.35243 b: 1.09985 c: 1.09985 d: 1.09985 e: 0.33698 f: 0.33698 g: 0.33698 h: 0.33698
a: 3.35244 b: 1.09986 c: 1.09986 d: 1.09986 e: 0.33698 f: 0.33698 g: 0.33698 h: 0.33698
a: 3.35245 b: 1.09986 c: 1.09986 d: 1.09986 e: 0.33698 f: 0.33698 g: 0.33698 h: 0.33698
a: 3.35246 b: 1.09986 c: 1.09986 d: 1.09986 e: 0.33698 f: 0.33698 g: 0.33698 h: 0.33698
a: 3.35247 b: 1.09987 c: 1.09987 d: 1.09987 e: 0.33698 f: 0.33698 g: 0.33698 h: 0.33698
a: 3.35247 b: 1.09987 c: 1.09987 d: 1.09987 e: 0.33698 f: 0.33698 g: 0.33698 h: 0.33698
a: 3.35247 b: 1.09987 c: 1.09987 d: 1.09987 e: 0.33698 f: 0.33698 g: 0.33698 h: 0.33698
a: 3.35248 b: 1.09987 c: 1.09987 d: 1.09987 e: 0.33698 f: 0.33698 g: 0.33698 h: 0.33698
a: 3.35248 b: 1.09987 c: 1.09987 d: 1.09987 e: 0.33698 f: 0.33698 g: 0.33698 h: 0.33698
Average pagerank = 1.0000

This page and its contents are copyright © 2024, Ian Rogers. Theme derived from Prav