wurzel ziehen aus 256 stelliger zahl
Übersicht

TOONYBetreff: wurzel ziehen aus 256 stelliger zahl |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe ein problem,
das warscheinlich nur experten lösen können: ich habe eine 256 stellige zahl im nachkommabereich: (gespeichert als string) B$ = "0.46575748756345634573465872369460235......" Ich bräuchte die wurzel dieser zahl.. mit dem SQR befehl komme ich da nicht weiter! Wer kann mir einen lösungsweg zeigen, oder wer hat schon eine lösung? Bin für jede hilfe sehr dankbar! |
||
Ensign Joe |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
sqr kann nur integers/doubles
nimm einfach wert# also # kein % bzw $ dahinter ![]() viel spa0 (also b#) |
||
Ich habe jetzt eine Pommesbude aufgemacht am Münchner Hauptbahnhof.
Und da ich Herbert Görgens heiße, heißt diese Pommesbude Herbert's Pommesbude ![]() |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ensign: er will eine 256stellige(!) Zahl bearbeiten. Da hilft ihm eine float mit 6 Stellen Genauigkeit recht wenig.... | ||
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 |
Ensign Joe |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja und, 6 stellen sind 6 stellen, besser als gar keine (normaler integer)
EDIT: achso, das ist 0,... toll, was bringt dir dasß |
||
Ich habe jetzt eine Pommesbude aufgemacht am Münchner Hauptbahnhof.
Und da ich Herbert Görgens heiße, heißt diese Pommesbude Herbert's Pommesbude ![]() |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
hargott: verstehst du es nicht?
er will es aber ganz genau und sucht daher eine Alternative Berechnung. |
||
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 |
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mit Sqr kommt er bei einer 256-Stelligen zahl glaub nicht sehr weit. Da muss das wohl schon ein String sein... | ||
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mein Vorschlag wäre: schreib dir eine Funktion, welche einen angegebenen String auf x Stellen miteinander multipliziert. (eine Stringmultiplikation wurde erst kürzlich im Codearchiv gepostet).
Nun müsstest du rekursiv vorgehen: ist zB .2 *.2 < deiner Wurzel, aber .3*.3 > deiner Wurzel (was im konkreten Falle nit stimmt) gehst du zur nächsten Stelle mit dem niederen Ergebnis weiter: also .20*.20 bis .29 *.29. hier verfährst du wieder genauso. Und das solange bis alle 256 Stellen berechnet sind. Allerdings zeitaufwendig und es kann je nach Anzahl der Berechnungsschritte zu einem Stack owerflow kommen (aber 2560 rekursive aufrufe sollte der Rechner eigentlich vertragen). EDIT: Zitat: EDIT: achso, das ist 0,... toll, was bringt dir dasß
Das kann dir ja egal sein wofür er es braucht, oder ? |
||
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 |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Diese Function Square_Root$ (Wert1$) gehört auch zu den String Rechnen Functionen
und könnte dir die Wurzel bis ins unendliche ziehen! wenn da nicht die Abbruch Bedingung drinn wäre! Bis auf diese Function habe ich alle anderen auch für Kommazahlen Demnach müßte diese noch umgeschrieben werden! Normal reicht es aus diese auf Komma umzustellen, da es zum berechnen nur integerfunctionen benötigt! Wenn ich Zeit und Lust habe schreibe ich die noch um! Zitat: ich habe eine 256 stellige zahl im nachkommabereich:
Wie..... nur eine ![]() |
||
[BB2D | BB3D | BB+]
|
TOONY |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Die Square_Root$ funktion hatte ich mir schon angeschaut,
ist sehr nützlich ![]() Ich hatte versucht die Funktion unzuschreiben, aber sich in einen fremden Code einzuarbeiten ist immer sehr schwer. Ich würde mich aufjeden fall freuen, wenns klappt. Ich habe üprigens nicht nur eine Zahl, die ich berechnen will, sondern mehrere 100 aus denen sich dann weitere Zahlen ergeben! Zitat: Nun müsstest du rekursiv vorgehen: ist zB .2 *.2 < deiner Wurzel, aber .3*.3 > deiner Wurzel (was im konkreten Falle nit stimmt) gehst du zur nächsten Stelle mit dem niederen Ergebnis weiter: also .20*.20 bis .29 *.29. hier verfährst du wieder genauso. Und das solange bis alle 256 Stellen berechnet sind. bei einer 256 großen nachkomma zahl ist das nicht möglich, weil: - "sqr(9)" nicht "sqr(0.9)*10" ist - "sqr(0.423423)" kann nicht in "sqr(0.423)" und sqr(423) aufgeteilt werden. wäre die zahl nicht im nachkommabereich, wäre dies kein problem!! |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Ich hatte versucht die Funktion unzuschreiben,
aber sich in einen fremden Code einzuarbeiten ist immer sehr schwer. Da muß ich vollkommen recht geben! Und gerade diese eine Function hats in sich! Ich schreib dir die Neue BlitzBasic: [AUSKLAPPEN] Square_Root_Plus$ aber erst morgen Früh! Jetzt klappt das sowieso nicht mehr ....(AUGENFALLZU) Wieviel Nachkommastellen werden denn benötigt? Obwohl..... ich kann auch das mit in die Function einbauen! Oder lieber ein Zeitlimit dann kannste die Speed vorgeben! ![]() |
||
[BB2D | BB3D | BB+]
|
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: bei einer 256 großen nachkomma zahl ist das nicht möglich,
weil: - "sqr(9)" nicht "sqr(0.9)*10" ist - "sqr(0.423423)" kann nicht in "sqr(0.423)" und sqr(423) aufgeteilt werden. Da hast du mich wohl etwas falsch verstanden ![]() Ich will nicht die Wurzeln in verschiedenen potenzen miteinander multiplizieren, sondern innerhalb einer Dezimalstelle jeweils das Ergebnis suchen welches am nächsten an der Lösung liegt. dann erst iterieren und somit die Lösung verfeinern. Ist ein Ansatz der auch bei der Berechnung von Pi einwandfrei funktioniert, man berechnet die Fläche über und unter der Kurve und verfeinert den berechneten Abschnitt immer weiter. |
||
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 |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Habs fertig, die eine Function
BlitzBasic: [AUSKLAPPEN] Function Square_Root_KOMMA$ (Wert1$,Nachkomma% = 50) zum Teil werden die anderen Functionen benötigt! die hier stehen https://www.blitzforum.de/viewtopic.php?t=9725 bitte noch mit dem Wissenschaftlichen Windows Taschenrechner überprüfen! hier der standart Test, BlitzBasic: [AUSKLAPPEN] Print Square_Root_KOMMA$ (0.0289,10) |
||
[BB2D | BB3D | BB+]
|
TOONY |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
1000 fachen DANK!!!!
Die Funktion werde ich heute nachmittag in mein Programm einbauen!! Ich denke schon dass die funkion funktioniert. DANKE!!!!! |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Um was für eine Art Proggi handelt es sich denn? ..neugierigfrag! | ||
[BB2D | BB3D | BB+]
|
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group