#!/usr/bin/perl

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

# Looping
# forward links
# a -> b	- 1 outgoing links	- home
# b -> c	- 1 outgoing link	- about
# c -> d	- 1 outgoing link	- products
# d -> a	- 1 outgoing links	- more info

# i.e. "backward" links (what's pointing to me?)
# a <= d
# b <= a
# c <= b
# d <= c
while ($iterate--) {
	printf("a: %.5f b: %.5f c: %.5f d: %.5f\n", $a, $b, $c, $d);

	$a = 1 - $damp + $damp * ($d);
	$b = 1 - $damp + $damp * ($a);
	$c = 1 - $damp + $damp * ($b);
	$d = 1 - $damp + $damp * ($c);
}
printf("Average pagerank = %.4f\n", ($a + $b + $c + $d) / 4); # to 4 decinal places!

Outputs

a: 0.00000 b: 0.00000 c: 0.00000 d: 0.00000
a: 0.15000 b: 0.27750 c: 0.38588 d: 0.47799
a: 0.55629 b: 0.62285 c: 0.67942 d: 0.72751
a: 0.76838 b: 0.80313 c: 0.83266 d: 0.85776
a: 0.87909 b: 0.89723 c: 0.91265 d: 0.92575
a: 0.93689 b: 0.94635 c: 0.95440 d: 0.96124
a: 0.96705 b: 0.97200 c: 0.97620 d: 0.97977
a: 0.98280 b: 0.98538 c: 0.98757 d: 0.98944
a: 0.99102 b: 0.99237 c: 0.99351 d: 0.99449
a: 0.99531 b: 0.99602 c: 0.99661 d: 0.99712
a: 0.99755 b: 0.99792 c: 0.99823 d: 0.99850
a: 0.99872 b: 0.99891 c: 0.99908 d: 0.99922
a: 0.99933 b: 0.99943 c: 0.99952 d: 0.99959
a: 0.99965 b: 0.99970 c: 0.99975 d: 0.99979
a: 0.99982 b: 0.99985 c: 0.99987 d: 0.99989
a: 0.99991 b: 0.99992 c: 0.99993 d: 0.99994
a: 0.99995 b: 0.99996 c: 0.99996 d: 0.99997
a: 0.99997 b: 0.99998 c: 0.99998 d: 0.99998
a: 0.99999 b: 0.99999 c: 0.99999 d: 0.99999
a: 0.99999 b: 0.99999 c: 0.99999 d: 1.00000
a: 1.00000 b: 1.00000 c: 1.00000 d: 1.00000
a: 1.00000 b: 1.00000 c: 1.00000 d: 1.00000
a: 1.00000 b: 1.00000 c: 1.00000 d: 1.00000
a: 1.00000 b: 1.00000 c: 1.00000 d: 1.00000
a: 1.00000 b: 1.00000 c: 1.00000 d: 1.00000
a: 1.00000 b: 1.00000 c: 1.00000 d: 1.00000
a: 1.00000 b: 1.00000 c: 1.00000 d: 1.00000
a: 1.00000 b: 1.00000 c: 1.00000 d: 1.00000
a: 1.00000 b: 1.00000 c: 1.00000 d: 1.00000
a: 1.00000 b: 1.00000 c: 1.00000 d: 1.00000
a: 1.00000 b: 1.00000 c: 1.00000 d: 1.00000
a: 1.00000 b: 1.00000 c: 1.00000 d: 1.00000
a: 1.00000 b: 1.00000 c: 1.00000 d: 1.00000
a: 1.00000 b: 1.00000 c: 1.00000 d: 1.00000
a: 1.00000 b: 1.00000 c: 1.00000 d: 1.00000
a: 1.00000 b: 1.00000 c: 1.00000 d: 1.00000
a: 1.00000 b: 1.00000 c: 1.00000 d: 1.00000
a: 1.00000 b: 1.00000 c: 1.00000 d: 1.00000
a: 1.00000 b: 1.00000 c: 1.00000 d: 1.00000
a: 1.00000 b: 1.00000 c: 1.00000 d: 1.00000
Average pagerank = 1.0000

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