AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hochzahl ?

Ein Thema von Clane · begonnen am 10. Jun 2005 · letzter Beitrag vom 11. Jun 2005
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Hochzahl ?

  Alt 10. Jun 2005, 18:41
Weil das nahezu identisch mit der Funktion "Power" ist (bei gebrochenen Exponenten)
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#12

Re: Hochzahl ?

  Alt 10. Jun 2005, 19:57
Hallo Dax,

Zitat von Dax:
Warum nicht einfach so?
Delphi-Quellcode:
function MyPow(Base, Exponent: Integer): Int64;
begin
  Result := Round(Exp(Exponent * Ln(Base)));
end;
das ist generell in Ordnung. Der Vorteil der Integer-Arithmetik fällt nicht so groß aus, wie ich dachte und für große Exponenten muss ich sogar die Rekursion ausbauen, damit ich mithalten kann. Ich wusste gar nicht, dass Exp() und Ln() zur Grundausrüstung gehören.

Für alle die es interessiert:

100.000.000 Zyklen 5 hoch 10: mypow 21s rekursiv 20s nonrek 18s

negative Basen gehen mit MyPow nicht.

Grüße vom marabu
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#13

Re: Hochzahl ?

  Alt 10. Jun 2005, 20:47
Okay, so gehts mit negativen Basen
Delphi-Quellcode:
function MyPow(Base, Exponent: Integer): Int64;
var i: Integer;
begin
  i := 1 - 2 * (Base shr (sizeof(Base)-1));
  Result := i*Round(Exp(Exponent * Ln(i*Base)));
end;
  Mit Zitat antworten Zitat
Clane
(Gast)

n/a Beiträge
 
#14

Re: Hochzahl ?

  Alt 11. Jun 2005, 10:21
Zitat von marabu:
Hallo PBiggi,

solange du wieder mal deine Math-Unit suchst kannst du das hier benutzen:

Delphi-Quellcode:
function Power(base: integer; exponent: byte): Int64;
begin
  if exponent = 0 then Result := 1
  else begin
    Result := Power(base, exponent shr 1);
    Result := Result * Result;
    if Odd(exponent) then
      Result := Result * base;
  end;
end;
Freundliche Grüße vom marabu
joa doch ... deshalb ging das nich ... pe hat math ja nich -.- naja mit deinen src geht auch

aber ich hab mal noch ne frage ... y=b*a(hoch)x wie kann ich die formel nach a auflösen ?? also aufm papier ?? ich bekomm das nich hin mit dem hoch x

edit: bzw wie zieh ich die x-te wurzel in delhi ?? weil die formel is ja eigentlich a = ((x-te wurzel)y/a)
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#15

Re: Hochzahl ?

  Alt 11. Jun 2005, 10:25
Zitat von PBiggi:
joa doch ... deshalb ging das nich ... pe hat math ja nich -.-


Ich empfehle dir eine Neuinstallation von Delphi, wenn du keine Math-Unit hast
  Mit Zitat antworten Zitat
Clane
(Gast)

n/a Beiträge
 
#16

Re: Hochzahl ?

  Alt 11. Jun 2005, 10:26
ne ich hab 7 und 2k5 personal und in denn is math nich drin
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#17

Re: Hochzahl ?

  Alt 11. Jun 2005, 10:32
Zitat von PBiggi:
ne ich hab 7 und 2k5 personal und in denn is math nich drin
Wie gesagt: Neuinstalltion. Ich hab in beiden die Unit Math und vollen Zugriff auf die Funktionen der Unit

Sowohl mit Delphi 7 Personal als auch mti Delphi 2005 Personal.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#18

Re: Hochzahl ?

  Alt 11. Jun 2005, 10:46
Zur x-ten Wurzel: Das sollte doch
a := (y / b, 1 / x); sein?
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: Hochzahl ?

  Alt 11. Jun 2005, 15:35
n-te Wurzel(x) = power(x, 1/n)
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:48 Uhr.
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