Avatar billede cms Nybegynder
10. juli 2001 - 19:29 Der er 38 kommentarer og
4 løsninger

Regning med store (gigantiske) tal i Delphi

Heyzan !

Jeg har brug for noget source til at regne med tal, der har flere decimaler end Extended.
Faktisk helst så mange decimaler som det overhovedet er muligt - fx en 200-300 tusind...
De matematiske funktioner, der behøves er:
+ (addition)
- (subtraktion)
* (multiplikation)
og kvadratrod

Desuden skal rutinen være så hurtig at den kan klare et par tusind beregninger i sekundet (aj, okay måske lidt mindre ville være ok). Men det skal i hvert fald ikke være med strings, dette er for langsomt - har prøvet.

God sommer :-)
Avatar billede cms Nybegynder
10. juli 2001 - 19:35 #1
Jeg sidder lige selv og prøver, og er kommet frem til at man *måske* kan dele tallene op i mindre variabler, et simpelt ex: to bytes i stedet for ét word, right?
Det ville muliggøre meget store tal og gøre beregninger hurtige.
Avatar billede zerohero Nybegynder
10. juli 2001 - 19:55 #2
I hvilken anledning står du at skulle bruge så store variabler?
Avatar billede cms Nybegynder
10. juli 2001 - 19:58 #3
tænkte det nok :-)

Flere anledninger. Den vigtigste at jeg er igang med at beregne pi med mange decimaler - rigtig mange decimaler...
Men i øvrigt ville jeg utrolig gerne vide hvordan man gør...
Avatar billede cms Nybegynder
10. juli 2001 - 19:58 #4
altså beregner med store tal. Pi kan jeg sagtens finde ud af.
Avatar billede zerohero Nybegynder
10. juli 2001 - 20:02 #5
Jeg tror ikke helt jeg forstår hvad du mener.
Umiddelbart ville jeg da bare bruge single.
Det bruger jeg meget når jeg programmere 3D, da man i mange tilfælde skulle bruge store variabler.
Avatar billede cms Nybegynder
10. juli 2001 - 20:12 #6
Single har kun 7-8 decimaler. Jeg skal bruge flere hundrede decimaler.
Avatar billede zerohero Nybegynder
10. juli 2001 - 20:22 #7
OK, nu er jeg med på den... Det var derfor du havde strings med i billedet. Men hvis single kun kan indeholde 7-8 decimaler og extended heller ikke kan indeholde nok decimaler vil du jo aldrig kunne lave en udregning selvom du fandt en løsning (ligesom strings bare hurtigere...
Avatar billede cms Nybegynder
10. juli 2001 - 20:25 #8
Jo jeg kan. I won\'t take no for an answer !!

Jeg sidder selv og roder lidt med addition med tal der er større end extended, og det ser godt ud ...
Avatar billede easysoft_studios Nybegynder
10. juli 2001 - 23:43 #9
oj, oj!

jeg har ikke en skid styr på det med rigtig mange decimaler, men jeg tror sgu alligevel, jeg fandt noget: [*unking lucky!]

FloatToDecimal

Delphi Help:
//FloatToDecimal converts a floating-point value to a decimal representation that is suited for further formatting.

Kan det bruges?
Avatar billede egede Nybegynder
10. juli 2001 - 23:51 #10
Skal du bruge det til at komme i guiness rekordbog?
Avatar billede borrisholt Novice
11. juli 2001 - 08:15 #11
cms>> hvor hård er du til C++ ? Fordi jeg har noget c++ kode vi måske kunne arbejde på ...

Jens B
Avatar billede cms Nybegynder
11. juli 2001 - 13:53 #12
es>> godt forslag, men desværre kan FloatToDecimal kun klare 20-21 decimaler...

egede>> nej jeg elsker bare matematik :-)

borrisholt>> Lyder spændende - jeg er desværre bare næsten invalid i C++ *gg*
Jeg har nu næsten fået addition til at virke på variabler større end 64 bit - jeg mangler bare lige at tage højde for om variablerne er signed/unsigned, og hvor kommaet er...
Avatar billede egede Nybegynder
11. juli 2001 - 14:28 #13
Hvis man nu begyndte at regne i potenser, kan det så ikke spare en del decimaler?
Avatar billede borrisholt Novice
11. juli 2001 - 14:30 #14
Jeg prøver at støve mit gamle C+ hack, og så vender jeg tilbage .. Den kunne regne med 1000 decimaler ....

Er der ongen der ved hvordan man laver operatorer således jeg laver en ny datatype fx. Bigint hvordan laver jeg en arimerisk operator på den ?

Jens B
Avatar billede cms Nybegynder
11. juli 2001 - 15:10 #15
egede>> jeg tror ikke jeg forstår dig...
vi skal jo netop ikke spare decimaler men ha dem frem

jb.
1000 decimaler, det lyder dejligt :-)
Man kan da ikke lave ejne datatyper i delphi der er større end 4 bytes (integer)...
Avatar billede borrisholt Novice
11. juli 2001 - 15:15 #16
Hvis Borland må, så må jeg også !!!



Jens B
Avatar billede easysoft_studios Nybegynder
11. juli 2001 - 16:05 #17
Prøv lige at se hvad hjælpe filen kom op med:

Type    Range            Format
Int64    –2^63..2^63–1    signed 64-bit


Er -2^63..2^63-1 ikke -2 i 63. til 2 i 63. -1?

Eller hvordan skal ^ fortolkes?
Avatar billede cms Nybegynder
11. juli 2001 - 20:01 #18
helt rigtigt fortolket - men det kan vi ikke bruge til så meget som jeg ser det...

okay jens - jeg glæder mig :-)
Avatar billede lasp Nybegynder
12. juli 2001 - 14:01 #19
En amerikansk delstat försökte lagstifta att Pi skulle vara avrundat till tre för att det skulle bli enklare.
Kan du inte tänka dig nått åt det hållet?
Avatar billede cms Nybegynder
12. juli 2001 - 15:05 #20
skørt.
kan du oversætte sidste sætning til engelsk?
Avatar billede easysoft_studios Nybegynder
13. juli 2001 - 08:52 #21
Øhh... kunne det ikke tænkes at cms gerne ville finde Pi med rigtig decimaler??

Ellers tro jeg bare han ville tage et stykke papir og skrive 3,145 (vist nok :-)
Avatar billede borrisholt Novice
13. juli 2001 - 08:54 #22
Jeg vil da gerne være vært ved en pi calculator (meget hurtig) ....

Jens B
Avatar billede easysoft_studios Nybegynder
13. juli 2001 - 08:57 #23
Lige en tanke:

Prøv at gå på www.experts-exchange.com, og opret en profil (hvis du ikke allerede har en :-)

Dem der svare på spørgsmål der, kan måske hjælpe dig!
Avatar billede cms Nybegynder
13. juli 2001 - 15:12 #24
easysoft>> ja jeg vil beregne pi, se min anden kommentar i dette spørgsmål. :-)
Jeg har lavet en function til at beregne pi - hvor de interne variabler der benyttes er Extended og de benyttede funktioner er Sqrt til kvadratrod og selvfølgelig de normale aritmetiske operatorer for floating point values.
Men da Extended kun kan have 10 digits er det faktisk meget bedre at bruge Delphi\'s indbyggede Pi funktion - og så er jeg jo ikke kommet langt.
Derfor dette spørgsmål.
Experts-exchange - nå, og jeg som troede at Eksperten.dk var selvopfundet... jaja.
Jeg prøver

Borrisholt>> Spændende - ja man kunne jo lave det til et \'flerbruger\'-projekt ligesom SEDI Home eller hvad det nu hedder (rum-aflytnings-projekt). Så kunne man starte med at sætte et mål fx 1 mio. decimaler og så ellers starte tilmeldingen :-)
Avatar billede torbenkoch Nybegynder
16. juli 2001 - 22:20 #25
Der findes en multiplikationsmetode, der hedder Trachtenberg, som er MEGET hurtig til at gange vildt store tal sammen. Jeg brugte den for rigtigt mange år siden til at regne med MEGET store tal på min Commodore 64 - og på den gik det faktisk tilfredsstillende hurtigt!

Søg på google efter \"trachtenberg multiplication\", det giver nogle interessante links.
Avatar billede jelzin101 Praktikant
16. juli 2001 - 22:25 #26
<<der er allerede lavet et flerbrugerprojekt der udregner pi...(så et link til det engang, men kan ikke huske det)
Avatar billede borrisholt Novice
17. juli 2001 - 09:07 #27
torbenkoch  >> Tiden er løber fra at skrive algoritmer der shifter til højere og venstere for ar gange store tal sammen ... Det kan en p3 processor gøre i en clock cykkel, lige som alle de andere simple ariemtriske funktioner .... Derfor tager en algoritme som \"trachtenberg multiplication\" ikke være forderene at bruge ....


CMS >> Den der pi fætter sender jeg lige til dig ...

Jens B
Avatar billede cms Nybegynder
17. juli 2001 - 13:30 #28
takker. cnt@cnt.dk
Jens forresten, du skulle tage og bruge lidt mere tid på din stavning/sætningsopbygning:

\'Tiden er løber fra at\' \'til højere og venstere\' \'cykkel\' \'andere\' \'ariemtriske\'

*gg*
Aj, jeg driller bare... Men jeg forstår faktisk ikke helt din sidste sætning... :-)
Avatar billede cms Nybegynder
17. juli 2001 - 13:31 #29
jelzin101>> selvfølgelig er der allerede et flerbrugerprojekt. men så har man jo ikke fornøjelsen af at skrive koden selv... :-)
Avatar billede borrisholt Novice
17. juli 2001 - 13:40 #30
cms >> Hvis ellers du kan se bort fra det ekstra e der var kommet ind i fordrende er der vist ikke det helt store galt med den ...

Any way pi dims på vej..

Jens B
Avatar billede x9bit Nybegynder
17. juli 2001 - 15:04 #31
WOW :o

Tjek lige den her site: http://pw1.netcom.com/~hjsmith/Pi/Records.html
Avatar billede x9bit Nybegynder
17. juli 2001 - 15:07 #32
...Faa samme side:

Title: Super PI Ver1.1e (calculation of pi up to 33.55 million digits)
Keywords: PI MATH WINDOWS
In August 1995, the calculation of pi up to 4,294,960,000 decimal digits was succeeded by using a supercomputer at the University of Tokyo. The program was written by D.Takahashi and he collaborated with Dr. Y.Kanada at the computer center, the University of Tokyo. This record should be the current world record. ( Details is shown in the windows help. ) This record-breaking program was ported to personal computer environment such as Windows NT and Windows 95. In order to calculate 33.55 million digits, it takes within 3 days with Pentium 90MHz, 40MB main memory and 340MB available storage.
The software is free and the circulation of program is also free!

ftp://pi.super-computing.org/windows/super_pi.zip


Avatar billede borrisholt Novice
17. juli 2001 - 15:21 #33
se det tempo kan jeg ikke være med i men, jeg vil da gerne vise en måde at beregne pi på :

Og modsat de andre dudes, vil jeg også offenligøre men source code : Http://borrisholt.com/Eksperten/pi.zip

Jens B
Avatar billede x9bit Nybegynder
17. juli 2001 - 15:48 #34
I hjælpe filen til Super PI er der faktik vist to formler til at udregne pi med...
Avatar billede cms Nybegynder
23. juli 2001 - 22:22 #35
Tusind tak for svarene. Undskyld, men jeg har været uden Internet og Eksperten (gisp!) i et par døgn...

Well,
Hvis man nu var ude på at blære sig overfor kammeraterne tror jeg SuperPi ville være det bedste program at bruge.
Hvis man ville have noget blæret sourcekode som man næsten forstår til at beregne pi så er Jens\' svar det bedste.
Men begge fritager mig for at have det sjovt, og selv lære / finde på hvordan man mon regner med disse store tal.
Jeg havde ligesåmeget som at beregne pi, lyst til bare at tage kvadratroden af 2 eller 5 og få den med tusind decimaler.
Avatar billede cms Nybegynder
23. juli 2001 - 22:23 #36
Men en forklaring af hvordan fx Jens\' rutine virker, og hvorfor den virker, ville da være okay :-)
Avatar billede borrisholt Novice
24. juli 2001 - 08:16 #37
cms  >> Problemet er at jeg har noget C++ kode der kan gøre det, men jeg har bare ikke tiden til at få det oversat til Delphi. Måske du selv vil prøve kræfter ?

Jens B
Avatar billede nazaq Nybegynder
24. juli 2001 - 13:00 #38
Prøv at se her om der er noget der kan hjælpe

http://www-rab.larc.nasa.gov/nmp/nmpIndex.htm

Det ser egentligt ret spændende ud, der er bl.a. en pakke der kan regne med integers på 484,842,745 decimaler !!!(jeg ved godt det ikke er præcis hvad du søger).

/NaZaq
Avatar billede cms Nybegynder
09. september 2001 - 15:03 #39
Jeg siger tak for svarene :-) Alle der vil have point svarer bare... (?) !
Avatar billede borrisholt Novice
09. september 2001 - 15:04 #40
:-)
Avatar billede x9bit Nybegynder
09. september 2001 - 15:06 #41
tjoo...
Avatar billede lasp Nybegynder
09. september 2001 - 15:12 #42
Nej Tack!
Men det skulle vara nemt att veta vad du vill göra?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester