Diese Funktion erlaubt es mit großen Hochzahlen zu rechen. Die Standardfunktion pow() steigt leider zu schnell aus um effektiv damit arbeiten zu können. Ich verwende hierfür den Square and Multiply Algorithmus:
<?php
/*
Square and Multiply Algorithmus
by Kai Köhler
*/
$base = 13;
$exp = 480;
echo sam($base,$exp); //7.5622055031668E+301
echo pow(13,480); //Inf
/*
berechnet base^exp
*/
function sam($base,$exp)
{
$res = $base;
if($exp == 0) return 1;
while ($exp != 0)
{
$res = $res * $res;//quadriert wird immer
$exp = $exp / 2; //Exponent halbieren
(int)$exp; //Kommastellen absägen
if($exp % 2)
{
$res = $res * $base; //Bei ungeradem Exponent mit Base multiplizieren
$exp--;//und eins vom Exponent abziehen
}
}
return $res;
}
Aktualisiert (Sonntag, den 29. August 2010 um 11:27 Uhr)
Alle Punkte einer elliptische Kurve bestimmen
Dienstag, den 27. Juli 2010 um 19:02 Uhr
Dieses kleine Programm hilft alle Punkte einer elliptischen Kurve zu finden.