php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.07.2010, 14:17  
Benutzer
 
Registriert seit: 13.02.2010
Beiträge: 46
PHP-Kenntnisse:
Fortgeschritten
hman13 kann nur auf Besserung hoffen
Standard Geschwindigkeitsoptimierung

Hallo,

um auch mit größeren Zahlen rechnen zu können, habe ich ein paar Funktionen geschrieben:
PHP-Code:
function get($in,$pos){
$out=substr($in, -$pos1);
return 
intval($out);
}


//addieren
function add($a,$b){
$c="";
$u=0;
$max[0]=strlen($a);
$max[1]=strlen($b);
$max=max($max);
for(
$i=1;$i<=$max;$i++){
$d=get($a,$i)+get($b,$i)+$u;
$u=0;
if(
$d>9){$d=$d-10;$u=1;}
$c=$d.$c;
}
if(
$u){$c=$u.$c;}
return 
$c;
}


//multipliziert a mit b, durch b* addieren von a
function mul2($a,$b){
$c="";
for(
$i=1;$i<=$b;$i++){
$c=add($c,$a);
}
return 
$c;
}

//multipliziert a mit b
function mul($a,$b){
$c="";
for(
$i=strlen($b);$i>=1;$i--){
$e="";
for(
$j=0;$j<($i-1);$j++){$e=$e."0";}

$d=mul2($a,get($b,$i)).$e;
$c=add($d,$c);
}
return 
$c;


Diese Funktionen sind leider etwas langsam. Deswegen wollte ich von euch wissen, ob man da etwas optimieren kann.

Peter
hman13 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 29.07.2010, 14:20  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.071
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

zumindest könntest du den Code mal ordentlich formatieren, dann kann man vielleicht auch etwas dazu sagen.

Gruß
__________________
HalloPHP
Asipak ist offline   Mit Zitat antworten
Alt 29.07.2010, 14:22  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.201
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist ein sehr geschätzer MenschDark Guardian ist ein sehr geschätzer MenschDark Guardian ist ein sehr geschätzer MenschDark Guardian ist ein sehr geschätzer Mensch
Standard

Rechenoperatoren wie $a + $b sind die aber ein Begriff?
__________________
Möglicherweise kommt zu "Menschen lügen" auch "Menschen bauen Mist".
Dark Guardian ist offline   Mit Zitat antworten
Alt 29.07.2010, 14:29  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.071
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Btw. kannst du dafür wohl besser auf die BC Math - Funktionen zurückgreifen: PHP: BC Math - Manual
__________________
HalloPHP
Asipak ist offline   Mit Zitat antworten
Alt 29.07.2010, 14:33  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.248
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Plus und Mal sind doch Pillepalle..
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 29.07.2010, 14:35  
Benutzer
 
Registriert seit: 13.02.2010
Beiträge: 46
PHP-Kenntnisse:
Fortgeschritten
hman13 kann nur auf Besserung hoffen
Standard

Zitat:
Zitat von Dark Guardian Beitrag anzeigen
Rechenoperatoren wie $a + $b sind die aber ein Begriff?
ja, geht aber mit 1000-stelligen zahlen nicht mehr.
hman13 ist offline   Mit Zitat antworten
Alt 29.07.2010, 14:53  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.129
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Gegen sprechende Variablen ist nichts einzuwenden. Code nicht schneller, nur weil er möglichst kompakt geschrieben wird..

Geändert von xm22 (29.07.2010 um 15:32 Uhr).
xm22 ist offline   Mit Zitat antworten
Alt 29.07.2010, 15:21  
Erfahrener Benutzer
 
Registriert seit: 04.07.2003
Beiträge: 359
PHP-Kenntnisse:
Fortgeschritten
Sirke befindet sich auf einem aufstrebenden Ast
Standard

Benutze dafür am Besten BCMath oder GMP wenn du wirklich optimierte Rechenoperationen haben möchtest!

Ansonsten gibt es genug optimierte Algorithmen zur Multiplikation, für den Fall dass du das wirklich selbst schreiben willst! Stichwort: Karatsuba!
Sirke ist offline   Mit Zitat antworten
Alt 29.07.2010, 21:17  
Erfahrener Benutzer
 
Registriert seit: 09.11.2008
Beiträge: 180
smilla befindet sich auf einem aufstrebenden Ast
Standard

Für größere Berechnungen eigenen sich Lösungen in C++ viel mehr, da hier die Berechnung in einem Bruchteil der Zeit erfolgen

Ja ich weiß, der Topic hilft nicht weiter, aber ich kann dir auch nicht sagen, was du da noch optimieren kannst.
smilla ist offline   Mit Zitat antworten
Alt 30.07.2010, 12:03  
Erfahrener Benutzer
 
Benutzerbild von PhillKill12
 
Registriert seit: 26.10.2008
Beiträge: 387
PHP-Kenntnisse:
Fortgeschritten
PhillKill12 befindet sich auf einem aufstrebenden Ast
PhillKill12 eine Nachricht über MSN schicken
Standard

Zitat:
Für größere Berechnungen eigenen sich Lösungen in C++ viel mehr, da hier die Berechnung in einem Bruchteil der Zeit erfolgen

Ja ich weiß, der Topic hilft nicht weiter, aber ich kann dir auch nicht sagen, was du da noch optimieren kannst.
das ist meiner ansicht nach eine echt gute idee, ich weiß jetzt nicht mehr genau, wie dieses Program heißt, aber es gibt eines, mit dem man PHP nach c# oder c++, oder was auch immer übersetzten kannst. oder du gehst einfach her und ladest eine exe auf deinen server zum rechnen ... und nutzt den rückgabeparameter als ergebnis ...
__________________
PHP-Code:
if ( $humans >= ) {
   
war ();

PhillKill12 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
geschwindigkeitsoptimierung php, geschwindigkeitsoptimierung von c, mathe geschwindigkeitsoptimierung, geschwindigkeitsoptimierung c

Alle Zeitangaben in WEZ +1. Es ist jetzt 17:54 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum