#!/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	- nothing	- external sites

# 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);
	$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.00000 b: 0.00000 c: 0.00000 d: 0.00000 e: 0.00000 f: 0.00000 g: 0.00000 h: 0.00000
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: 0.50998 b: 0.29449 c: 0.29449 d: 0.29449 e: 0.20006 f: 0.20006 g: 0.20006 h: 0.20006
a: 0.70070 b: 0.34853 c: 0.34853 d: 0.34853 e: 0.20925 f: 0.20925 g: 0.20925 h: 0.20925
a: 0.80176 b: 0.37716 c: 0.37716 d: 0.37716 e: 0.21412 f: 0.21412 g: 0.21412 h: 0.21412
a: 0.85530 b: 0.39233 c: 0.39233 d: 0.39233 e: 0.21670 f: 0.21670 g: 0.21670 h: 0.21670
a: 0.88366 b: 0.40037 c: 0.40037 d: 0.40037 e: 0.21806 f: 0.21806 g: 0.21806 h: 0.21806
a: 0.89869 b: 0.40463 c: 0.40463 d: 0.40463 e: 0.21879 f: 0.21879 g: 0.21879 h: 0.21879
a: 0.90666 b: 0.40689 c: 0.40689 d: 0.40689 e: 0.21917 f: 0.21917 g: 0.21917 h: 0.21917
a: 0.91088 b: 0.40808 c: 0.40808 d: 0.40808 e: 0.21937 f: 0.21937 g: 0.21937 h: 0.21937
a: 0.91311 b: 0.40872 c: 0.40872 d: 0.40872 e: 0.21948 f: 0.21948 g: 0.21948 h: 0.21948
a: 0.91430 b: 0.40905 c: 0.40905 d: 0.40905 e: 0.21954 f: 0.21954 g: 0.21954 h: 0.21954
a: 0.91493 b: 0.40923 c: 0.40923 d: 0.40923 e: 0.21957 f: 0.21957 g: 0.21957 h: 0.21957
a: 0.91526 b: 0.40932 c: 0.40932 d: 0.40932 e: 0.21958 f: 0.21958 g: 0.21958 h: 0.21958
a: 0.91543 b: 0.40937 c: 0.40937 d: 0.40937 e: 0.21959 f: 0.21959 g: 0.21959 h: 0.21959
a: 0.91553 b: 0.40940 c: 0.40940 d: 0.40940 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91558 b: 0.40941 c: 0.40941 d: 0.40941 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91560 b: 0.40942 c: 0.40942 d: 0.40942 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91562 b: 0.40942 c: 0.40942 d: 0.40942 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91562 b: 0.40943 c: 0.40943 d: 0.40943 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91563 b: 0.40943 c: 0.40943 d: 0.40943 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91563 b: 0.40943 c: 0.40943 d: 0.40943 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91563 b: 0.40943 c: 0.40943 d: 0.40943 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91563 b: 0.40943 c: 0.40943 d: 0.40943 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91563 b: 0.40943 c: 0.40943 d: 0.40943 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91563 b: 0.40943 c: 0.40943 d: 0.40943 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91563 b: 0.40943 c: 0.40943 d: 0.40943 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91563 b: 0.40943 c: 0.40943 d: 0.40943 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91563 b: 0.40943 c: 0.40943 d: 0.40943 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91563 b: 0.40943 c: 0.40943 d: 0.40943 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91563 b: 0.40943 c: 0.40943 d: 0.40943 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91563 b: 0.40943 c: 0.40943 d: 0.40943 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91563 b: 0.40943 c: 0.40943 d: 0.40943 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91563 b: 0.40943 c: 0.40943 d: 0.40943 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91563 b: 0.40943 c: 0.40943 d: 0.40943 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91563 b: 0.40943 c: 0.40943 d: 0.40943 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91563 b: 0.40943 c: 0.40943 d: 0.40943 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91563 b: 0.40943 c: 0.40943 d: 0.40943 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91563 b: 0.40943 c: 0.40943 d: 0.40943 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
a: 0.91563 b: 0.40943 c: 0.40943 d: 0.40943 e: 0.21960 f: 0.21960 g: 0.21960 h: 0.21960
Average pagerank = 0.3778

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