Asuntos Oficiales > La taberna del BIT

 Elgoog

(1/1)

RadicalEd:
:unsure: Pfff Ahora como buscamos :blink:
elgooG
A y este es el algoritmo del PageRank de Google

--- Código: Text ---<?phpheader("Content-Type: text/plain; charset=utf-8");define('GOOGLE_MAGIC', 0xE6359A60);function zeroFill($a, $b) {$z = hexdec(80000000);if ($z & $a) {$a = ($a>>1);$a &= (~$z);$a |= 0x40000000;$a = ($a>>($b-1));} else {$a = ($a>>$b);}return $a;}function mix($a,$b,$c) {$a -= $b; $a -= $c; $a ^= (zeroFill($c,13));$b -= $c; $b -= $a; $b ^= ($a<<8);$c -= $a; $c -= $b; $c ^= (zeroFill($b,13));$a -= $b; $a -= $c; $a ^= (zeroFill($c,12));$b -= $c; $b -= $a; $b ^= ($a<<16);$c -= $a; $c -= $b; $c ^= (zeroFill($b,5));$a -= $b; $a -= $c; $a ^= (zeroFill($c,3));$b -= $c; $b -= $a; $b ^= ($a<<10);$c -= $a; $c -= $b; $c ^= (zeroFill($b,15));return array($a,$b,$c);}function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) {if(is_null($length)) {$length = sizeof($url);}$a = $b = 0x9E3779B9;$c = $init;$k = 0;$len = $length;while($len >= 12) {$a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24));$b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24));$c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24));$mix = mix($a,$b,$c);$a = $mix[0]; $b = $mix[1]; $c = $mix[2];$k += 12;$len -= 12;}$c += $length;switch($len) {case 11: $c+=($url[$k+10]<<24);case 10: $c+=($url[$k+9]<<16);case 9 : $c+=($url[$k+8]<<8);case 8 : $b+=($url[$k+7]<<24);case 7 : $b+=($url[$k+6]<<16);case 6 : $b+=($url[$k+5]<<8);case 5 : $b+=($url[$k+4]);case 4 : $a+=($url[$k+3]<<24);case 3 : $a+=($url[$k+2]<<16);case 2 : $a+=($url[$k+1]<<8);case 1 : $a+=($url[$k+0]);}$mix = mix($a,$b,$c);return $mix[2];}function strord($string) {for($i=0;$i$result[$i] = ord($string{$i});}return $result;}function c32to8bit($arr32) {for($i=0;$ifor ($bitOrder=$i*4;$bitOrder<=$i*4+3;$bitOrder++) {$arr8[$bitOrder]=$arr32[$i]&255;$arr32[$i]=zeroFill($arr32[$i], 8);}}return $arr8;}$url =' info:'.$_GET['url'];print(url:\t{$_GET['url']}\n);$ch = GoogleCH(strord($url));printf(Checksum ><2.0.114:\t6%u\n",$ch);$ch=sprintf("%u", $ch);$ch = ((($ch/7) << 2) | (((int)fmod($ch,13))&7));$prbuf = array();$prbuf[0] = $ch;for($i = 1; $i < 20; $i++) {$prbuf[$i] = $prbuf[$i-1]-9;}$ch = GoogleCH(c32to8bit($prbuf), 80);printf("Checksum >=2.0.114:\t6%u\n",$ch);?>  

Navegación

[0] Índice de Mensajes

Ir a la versión completa