Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Potenz in Delphi (https://www.delphipraxis.net/74222-potenz-delphi.html)

xZise 30. Jul 2006 21:47

Re: Potenz in Delphi
 
Angeshen von der Delphi hilfe:
Drücke mal im QT <strg> + <space>! Scheibe dann Power und dann siehst du das:
Zitat:

function Power(const Base: Extended; const Exponent: Extended): Extended;
D.h. die Übergabewerte sind Fließkommazahlen ;)
Bei IntPower ist das anders. (Ich vermute mal, dass IntPower schneller ist, allerdings lässt er nur Integer als Exponenten zu)

JasonDX 30. Jul 2006 22:07

Re: Potenz in Delphi
 
Zitat:

Zitat von xZise
(Ich vermute mal, dass IntPower schneller ist, allerdings lässt er nur Integer als Exponenten zu)

Der Implementierung nach nicht: Während Power über Exp(Exponent, ln(Base)) implementiert ist und damit in O(1) läuft , ist IntPower über eine (optimierte) Schleife implementiert, die in O(ln2(n)) abläuft.
Aber ich denke mal bei kleinen Exponenten könnte IntPower tatsächlich schneller sein, da weniger Operationen auf der FPU auszuführen sind.

greetz
Mike

Alexander Roth 31. Jul 2006 06:56

Re: Potenz in Delphi
 
Und vor allem werden wie der name schon sagt Binomische Formrmeln bei dem Exponenten 2 angewendet. Bei anderen Potenzen kann man lediglich die Binomischen Formeln komibieren.
Für einfaches "ausrechnen" sind sie jedoch völlig ungeeignet, sondern werden nur entweder zur Vereinfachung (Quadratische Ergänzung), oder zum "schnellen Ausmultiplizieren" benutzt.

Zitat:

Zitat von HERMES
Natürlich wird da zuerst addiert! ALso Power(24+17,3) = Power(41,3)

Absolut Korrekt.

PS: Tschuldigung das ich schon was bekanntes wiederholt hab. Habe die Seite 2 übersehen.
:duck:

xZise 31. Jul 2006 09:23

Re: Potenz in Delphi
 
Sry, aber irgendwie verstehe ich die fetten Textstellen nicht:
Zitat:

Zitat von JasonDX
Der Implementierung nach nicht: Während Power über Exp(Exponent, ln(Base)) implementiert ist und damit in O(1) läuft , ist IntPower über eine (optimierte) Schleife implementiert, die in O(ln2(n)) abläuft.


3_of_8 31. Jul 2006 09:25

Re: Potenz in Delphi
 
O(1) bedeutet konstante Laufzeit, O(ln2(n)) bedeutet logarithmische Laufzeit.

JasonDX 31. Jul 2006 09:32

Re: Potenz in Delphi
 
Zitat:

Zitat von xZise
Sry, aber irgendwie verstehe ich die fetten Textstellen nicht:
Zitat:

Zitat von JasonDX
Der Implementierung nach nicht: Während Power über Exp(Exponent, ln(Base)) implementiert ist und damit in O(1) läuft , ist IntPower über eine (optimierte) Schleife implementiert, die in O(ln2(n)) abläuft.


e**(Exponent * ln(Base)) ist eine andere Art, den Term Base**Exponent auszurechnen. Das ln(Base) beschreibt dabei den Logarithmus.

Zitat:

Zitat von JasonDX
O(1) [...] O(ln2(n))

Das ist die Zeitkomplexität. Ein Algorithmus läuft immer in einer bestimmten Zeit ab.
Bspw. läuft diese Schleife:
Delphi-Quellcode:
for i := 1 to n do
  nop;
in O(n) ab, während
Delphi-Quellcode:
for i := 1 to n do
  for j := 1 to n do
    nop;
in O(n*n) abläuft.
Delphi-Quellcode:
for i := 1 to 1 do
  nop;
hat eine Zeitkomplexität von O(1).
Was das O(...) bedeutet, dauert etwas zu erklären. Stichwort Landau-Symbole bringt erklärungen ;)

greetz
Mike

runger 31. Jul 2006 11:13

Re: Potenz in Delphi
 
Hallo,

lieber Kinzler:

Zitat:

Bist du dir da sicher, daß er nicht 41 ^3 rechnet, was etwas anderes als (24 + 17) ^3 ist?
41^3 ist das gleiche wie (24+17)^3

Wohl in Mathe nicht so ganz aufgepasst?

Rainer

mkinzler 31. Jul 2006 11:26

Re: Potenz in Delphi
 
Zitat:

Wohl in Mathe nicht so ganz aufgepasst?
Lang lang ists her ...

xZise 31. Jul 2006 11:28

Re: Potenz in Delphi
 
  1. Klammern
  2. Potenzen/Logarithmen
  3. Multiplikationen/Divitionen
  4. Addtionen/Subtrahktionen
  5. Links > Rechts


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:32 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz