Von mir aus- ändert aber trotzdem nix an der verfehlten lösung!
Beiträge von Irrlicht
-
-
-
Hallo!
Hab vor nen paar Tagen mit C++ angefangen und hab mir dann gleich den Chudnovsky Algorithmus angeschaut.
So sieht mein momentanes Skript aus:ZitatAlles anzeigen#include "stdafx.h"
#include<iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int _fakultät(int a);
int k=0;
int pi=0;
for (k=0;k<=1000;k++)
{
pi+=((-1)^(k)*_fakultät(6*k)*(13591409+54514034*k))/((_fakultät(3*k))*(_fakultät(k))^(3)*640320^(3*k+3/2));
}getchar();
}
////fakultät
int _fakultät(int a)
{
double fak=1;
int i;
for (i=1;i<=a;i++)
{
fak*=i;
}
return fak;
}
Nur was da rauskommt, hat im entferntesten nix mit Pi zu tun.
(Jaja, ich weiß... noch *12 ... 1/pi) ....
Ich vermute mal, mein Fehler liegt irgendwo beim Summenzeichen? -
-
Also ich weiß ja nicht. wenn ich p[$i] und o[$i] mit bignum beschreiben lass, kommt diese tolle zahl raus:
[autoit]Zitat
-4976216652641.8093060830045807941121405391144823947599153088874195305219847587968992246885992733908271016270314108719159240616978117791473469482078501003250964492976115254322867831663265528662338524320949258230439025804719088714412028985185873590368481720783672810825281679448810704404928695551687183818930020206497322938237864021199441524077321419794407809281995168830588914868907768623904398250868965114163476733624646591194734089648642229155185527641550993358677073020894324111071758124048594686121644493737664452041033836765456007322049826279643564990186057102371335009552950583627936674393010675793258432794937262427866785063179866312829838748245807611256508789565713734374144576415845483519540337760191981711393892816320468293104550900825090784754827641590522603356539664821824611291619623558444493049147396041129259389593477316414474520293422964706955916111830898818996315560772856741942535227201884578380248527756345743615843808737205363898090259384505497440737146188164113454963771916526971688798460780815831751050509995505565153047081563110523961675991492543044624449965308287024175197502195804526137347273774314552400311876481158672675461139134167743620505047707207917166988503801073025500048700687025125232824644486511008928048662651398319358880952338328254966283944157011160875378265694904720148782666382771265060747910326279040857868601497388333942082394171182177478102208503811607770512256049723816253852026025825796996136422880958107267056782989602200621771267727235463952006055632$t[$i]= _bignum_mul((_bignum_sub($t[$i-1],$p[$i-1])),(_bignum_pow((_bignum_sub($a[$i-1],$a[$i])),2)))
[/autoit]
$p[$i]= _bignum_mul(2,$p[$i-1])
findet jemand den fehler? -
Hallo,
[autoit]
du hattest recht.
Hab die ersten 2 Variablen mit bignum beschrieben :;Der Gaußsche Algorithmus zur Berechnung von Pi
[/autoit][autoit][/autoit][autoit]
#include<array.au3>
#include<bignum.au3>
local $a[2]
local $b[2]
local $t[2]
local $p[2]
$i=0
$a[0]= 1
$b[0]= 1/sqrt(2)
$t[0]= 1/4
$p[0]=1while 1
[/autoit]
$i+=1
$a[$i] = _bignum_div(_bignum_add($a[$i-1],$b[$i-1]),2)
$b[$i]= _bignum_sqrt(_bignum_mul($a[$i-1],$b[$i-1]))
$t[$i]= $t[$i-1]-$p[$i-1]*($a[$i-1]-$a[$i])^2
$p[$i]= 2*$p[$i-1]
_arrayadd($a, $a[$i])
_arrayadd($b, $b[$i])
_arrayadd($t, $t[$i])
_arrayadd($p, $p[$i])
Msgbox(0, "", _bignum_div(_bignum_pow((_bignum_add($a[$i-1], $b[$i-1])),2), _bignum_mul(4, $t[$i-1])))
wend
[autoit]
Nur entweder hat die bignum nen fehler, oder ich hab einen reingemacht. Wenn, dann bei $b[$i]. Sieht ihn jemand?
Edit:$b[$i]= _bignum_sqrt(_bignum_mul($a[$i-1],$b[$i-1]),2)
[/autoit]ist immer noch leicht fehlerhaft =/
-
Halli hallo, hallöchen.
[autoit]
Hab dieses Skript:;Der Gaußsche Algorithmus zur Berechnung der Nachkommastellen von Pi
[/autoit][autoit][/autoit][autoit]
#include<array.au3>
#include<bignum.au3>
local $a[2]
local $b[2]
local $t[2]
local $p[2]
$i=0
$a[0]= 1
$b[0]= 1/sqrt(2)
$t[0]= 1/4
$p[0]=1while 1
[/autoit]
$i+=1
$a[$i] = ($a[$i-1]+$b[$i-1])/2
$b[$i]= sqrt($a[$i-1]*$b[$i-1])
$t[$i]= $t[$i-1]-$p[$i-1]*($a[$i-1]-$a[$i])^2
$p[$i]= 2*$p[$i-1]
_arrayadd($a, $a[$i])
_arrayadd($b, $b[$i])
_arrayadd($t, $t[$i])
_arrayadd($p, $p[$i])
Msgbox(0, "", _bignum_div(_bignum_pow((_bignum_add($a[$i-1], $b[$i-1])),2), _bignum_mul(4, $t[$i-1])))
wendErklärt sich glaub von selbst, ansonsten http://en.wikipedia.org/wiki/Gauss%E2%…endre_algorithm
1. Weiter als 48 Nachkommastellen gehts hier nicht. Sollte ich in dem Fall bignum schon bei den obrigen Variabeln anwenden?
2.Zitat2. Repeat the following instructions until the difference of a_n\! and b_n\! is within the desired accuracy:
Versteh ich eigentlich. Aber wie bitte soll ich das mit ner Do-until-Schleife machen? Was für eine accuracy ist denn gewünscht? So wie ich das seh, gehts mit der while-schleife auch ganz angenehm.Irgendwelche Codebeispiele oder fertige Programme will ich net (ich weiß, hört sich komisch an). Möchte alles selber machen, brauche nur nen kleinen Tipp.
danke,
billie -
Und warum kannst das nicht selber? Quelltext holen und Stringbetween anwenden
-
Ich bezweifle ,dass 99^99 so simpel gerechnet werden kann. Da kommt immerhin was mit 3.6 *10^197 raus. Wenn ich mich nicht irre, ist somit der Doubledatenwert überschritten.
-
naja um 99^99 zu rechnen:
[autoit]_bignum_pow(99, 99)
[/autoit] -
Später wirst du wahrscheinlich die bignum.au3 von eukalyptus benötigen
-
So alt schon ?
)
Du Charmeur
Von mir natürlich auch alles gute. Feier schön -
Das einzige was mir dazu einfällt:
Beim Xilisoft DVD Creator ist es möglich, ganz viele Einstellungen für den Film hinzuzufügen, der daraufhin gebrannt werden soll.
Einfach ein schwarzes Bild einzufügen sollte auch möglich sein.
Wenn du es dir nicht kaufen willst (lohnt sich jedoch!) ,kannst dir die trialversion holen oder... wie du willst
Btw, was ist das für eine Animation?


-
Machs einfach so...
[autoit]#RequireAdmin
[/autoit][autoit][/autoit][autoit]
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 625, 310, 192, 124,$WS_POPUP)
$Pic1 = GUICtrlCreatePic(@scriptdir&"\Data\Background.jpg", 0, 0, 624, 309, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
GUISetState(@SW_SHOW)While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Pic1
If fileexists(@scriptdir& "\Data\Background2.jpg") then FileMove (@ScriptDir &"\Data\Background2.jpg", "C:\Program Files\Funspiel")
EndSwitch
WEnd -
Die Backslashes fehlen?
[autoit]@ScriptDir &"\Data\Background2.jpg"
[/autoit] -
[autoit]
Controlsend
[/autoit] -
Deine Fehlermeldung hilft recht wenig.
Bei mir kommtZitatWARNING: $Paused: possibly used before declaration.
$Paused = NOT $Paused
~~~~~~~~~~~~~~~~~~~~~^
[autoit]
$paused musst du noch deklarierenglobal $paused
[/autoit]
Wenn du schon das Beispielskript zu den Hotkays aus der Hilfe kopieren musst, dann aber auch alles
Edit:Ätsch, BB

-
Alles gute!
-
DFPWare ist heute 16 geworden.
Dazu gratulier ich dir und wünsch dir viel Glück und viel Segen auf all deinen Wegen! -
Und dabei hab ich gar nix mit Stargate am Hut

-
Ein weiterer Einblick in die derzeitigen Arbeiten...
[Blockierte Grafik: http://www.mediafire.com/imgbnc.php/fe13322788983bda8c87f099813feca40d42fe0eaf72e0580c764aeb228efb414g.jpg]