Wurzel per Sqr ziehen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

5k41

Betreff: Wurzel per Sqr ziehen

BeitragDi, Nov 07, 2006 16:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!
Mir ist grad aufgefallen das man sich selbst ganz schnell mit:
Code: [AUSKLAPPEN]

Function R(radikant#,factor#=2)
 Return ( radikant# ^ ( 1 / factor# ) )
End Function

eine eigene Wurzelfunktion basteln kann und nun wollte ich fragen, ob die original Blitzfunktion das genau so macht, ob es schneller ist und was der Nachteil daran ist.

MfG
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image
  • Zuletzt bearbeitet von 5k41 am Mi, Nov 08, 2006 20:32, insgesamt einmal bearbeitet

Xaron

BeitragDi, Nov 07, 2006 16:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Also die Quadratwurzel-Funktion von BB ist sicher schneller.

Gruß - Xaron
Cerberus X - Monkey X Reloaded!

5k41

BeitragDi, Nov 07, 2006 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
mh, also ich hab mal irgendwo hier gelesen, dass jene sehr langsam sein soll... gibt es hier vielleicht irgendwen der erklären kann wie die von Blitz funktioniert oder warum nun was schneller ist?

MfG
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

Xaron

BeitragDi, Nov 07, 2006 16:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Also die Quadratwurzel-Funktion von Blitz wird auch nix anderes machen, als die Systemfunktion dafür aufzurufen - also die gleiche, die auch mein C++ Compiler nutzt. Deine Exponentialfunktion sollte deutlich langsamer laufen. Das kannst Du ja mal in einer Schleife testen und die Millisekunden ausgeben. Wink

Gruß - Xaron
Cerberus X - Monkey X Reloaded!
 

Schnuff

BeitragDi, Nov 07, 2006 16:59
Antworten mit Zitat
Benutzer-Profile anzeigen
jop, bei 100000 durchläufen
brauchte die normale 10-11 Ms
und deine 31Ms
Rolling Eyes
Programmers dont die. They gosub without return...

5k41

BeitragDi, Nov 07, 2006 17:01
Antworten mit Zitat
Benutzer-Profile anzeigen
mh, ok schade... naja, n versuch wars wert Wink

mfg
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

Xaron

BeitragDi, Nov 07, 2006 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist ja trotzdem nützlich, wenn Du nicht die Quadratwurzel sondern z.B. die dritte oder vierte oder xte Wurzel aus einer Zahl ziehen willst. Wink

Gruß - Xaron
Cerberus X - Monkey X Reloaded!

BladeRunner

Moderator

BeitragDi, Nov 07, 2006 17:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Was mich zu der Klugscheisserei bringt dass Deine Funktion den falsche Namen trägt: squareroot ist ja die Quadratwurzel...
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Triton

BeitragDi, Nov 07, 2006 18:28
Antworten mit Zitat
Benutzer-Profile anzeigen
naja y.wurzel(x) = x^1/y
ist eigentlich ein mathematischer Zusammenhang, der allgemein bekannt ist Wink

Wie man aber z.B eine Zahl wie 6^2,35791 (oder allgemein a^(b/c)) ohne Taschenrechenr oder Computer ausrechnen würde - ich weiß es nicht.
Coding: silizium-net.de | Portfolio: Triton.ch.vu

StepTiger

BeitragDi, Nov 07, 2006 20:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Triton hat Folgendes geschrieben:
naja y.wurzel(x) = x^1/y
ist eigentlich ein mathematischer Zusammenhang, der allgemein bekannt ist Wink


falsch Smile

x^1/y = x/y
y.wurzel(x) = x^(1/y)

Smile

schriftliches Wurzelziehen ist ebenfalls möglich.

Ist eigentlich recht einfach jedoch dumm zu erklären. Rechenbeispiel:

Code: [AUSKLAPPEN]
 24|90|01 = 4
-16
   8
   89

 ; Zerteilung der Zahl in 2er Pärchen, von rechts beginnend. Dann die größte Quadratzahl unter dem ersten Pärchen abziehen und die Wuzel der Zahl als Ergebnis notieren.


89/8 = 9 + Rest (da Zahl min 0 max 9)

;Die nächste Ziffer herunterziehen und die sich ergebende Zahl durch das bisher doppelte Gesamtergebnis teilen. Der Rest interessiert keinen. 9, da das Ergebnis über -1 und unter 10 sein muss

9*89 = 801
;Nun das Ergebnis oben zum Gesamtergebnis hinzufügen, die nächste Zahl herunterziehen. Hier nun das Ergebnis des letzten Schrittes * (den Divisor der letzten Rechung * 10 + das Ergebnis der letzten Rechnung). Das hier entstehende Produkt abziehen.

 24|90|01 = 49
-16
   8
   890
  -801
     890

890/98 = 9 + Rest

;Wieder die nächste herunterziehen, durch das doppelte Ergebnis teilen und schon haben wir 3 Ziffern beim Ergebnis stehen.

9*989
  81
    72
      81
=8901

; noch einmal: Ergebnis(hier 9)*(Den Divisor (vorher 98)*10+Ergebnis( hier 9 )) rechnen und nun...

 24|90|01 = 499
-16
   8
   890
 -801
    890
    8901
  -8901

;nachdem man die nächste Zahl heruntergezogen hat, abziehen. Sollte 0 herauskommen, so hat man die endgültige Wurzel.
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Triton

BeitragMi, Nov 08, 2006 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
StepTiger hat Folgendes geschrieben:
Triton hat Folgendes geschrieben:
naja y.wurzel(x) = x^1/y
ist eigentlich ein mathematischer Zusammenhang, der allgemein bekannt ist Wink


falsch Smile

x^1/y = x/y
y.wurzel(x) = x^(1/y)

Smile


Ich spar mir zu dieser Klugscheißerei mal einen Kommentar Wink

StepTiger hat Folgendes geschrieben:

schriftliches Wurzelziehen ist ebenfalls möglich.


Ich weiß Wink


Aber zieh doch mal schriftlich die 11. Wurzel oder berechne Schriftlich 2^3,14159

Rolling Eyes
Coding: silizium-net.de | Portfolio: Triton.ch.vu

StepTiger

BeitragMi, Nov 08, 2006 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
schriftlich die 11te geht auch ^^

war auch nur ein Beispiel ^^
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Mr.Keks

BeitragMi, Nov 08, 2006 20:21
Antworten mit Zitat
Benutzer-Profile anzeigen
BladeRunner hat Folgendes geschrieben:
Was mich zu der Klugscheisserei bringt dass Deine Funktion den falsche Namen trägt: squareroot ist ja die Quadratwurzel...
ich weiß, dass das für blitz gilt, aber eigentlich ist ja sqr die abkürzung für square und square root wird durch sqrt abgrkürzt ^^.
MrKeks.net

5k41

BeitragMi, Nov 08, 2006 20:32
Antworten mit Zitat
Benutzer-Profile anzeigen
hab die funktion mal umbenannt Wink
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

BladeRunner

Moderator

BeitragMi, Nov 08, 2006 20:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Dass ist gut, wir haben hier nämlich genug klug-Sch... für nen Gravitationskollaps gesammelt.
Wink
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

PowerProgrammer

BeitragDo, Nov 09, 2006 7:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Aua, einen Buchstaben als Befehlsnamen? Nimm doch lieber "Rt" oder gleich "Root". Wink
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter!

5k41

BeitragDo, Nov 09, 2006 14:28
Antworten mit Zitat
Benutzer-Profile anzeigen
war auch nicht wirklich ernst gemeint... Wink mir ists eigentlich total egal, ich weiss was gemeint ist Very Happy

MfG
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group