Avatar billede penta Nybegynder
20. oktober 2003 - 16:32 Der er 13 kommentarer og
1 løsning

Jeg har brug for en smart måde at gange store tal sammen på?

Er der nogen der kender en smart måde at gange store tal sammen på? Når jeg siger store tal så mener jeg eks.
(1009 *(19590340644999083431262508198206381046123972390589368223882605328968666316379870661851951648789482321596229559115436019149189529725215266728292282990852649023362731392404017939142010958261393634959471483757196721672243410067118516227661133135192488848989914892157188308679896875137439519338903968094905549750386407106033836586660683539201011635917900039904495065203299749542985993134669814805318474080581207891125910))
Hvor gemmer jeg resultatet, hvis dette skal mulitipliceres med et ny tal? Og hvordan gøres denne beregning hurtigst?
Avatar billede arne_v Ekspert
20. oktober 2003 - 16:38 #1
Du har brug for et big integer librrary.

Dem er der sikkert flere af til Delphi.

F.eks.:
http://www.delphiforfun.org/Programs/Delphi_Techniques/big_integers.htm
Avatar billede fun22 Nybegynder
20. oktober 2003 - 16:38 #2
label1.caption := 1009 * (19590340644999083431262508198206381046123972390589368223882605328968666316379870661851951648789482321596229559115436019149189529725215266728292282990852649023362731392404017939142010958261393634959471483757196721672243410067118516227661133135192488848989914892157188308679896875137439519338903968094905549750386407106033836586660683539201011635917900039904495065203299749542985993134669814805318474080581207891125910))

og hvis du så skal videre så bruger du jo bare:

label1.caption * 1000

(er ikke testet...)

Mvh
Jesper
Avatar billede penta Nybegynder
20. oktober 2003 - 17:15 #3
Ja Arne det er vist lige sådan jeg har gjort...eller efter samme princip. Mit problem er bare at det tager lang tid at multiplicere alle primtal mellem 2 og 20000...og jeg vil godt vide om det kan være rigtigt. Det tager 13 sekunder at gange alle primtal mellem 2 og 1000(der er 168 primtal i dette interval).Det tager 41 sekunder ved intervallet 2 og 2000. Ved du om det kan passe at det tager så lang tid?
Avatar billede arne_v Ekspert
20. oktober 2003 - 17:18 #4
Nej - det lyder urimeligt langsomt.
Avatar billede arne_v Ekspert
20. oktober 2003 - 17:19 #5
Lyder som det er tid at optimere koden eller finde en færdig optimeret
pakke.

plus, minus og gange bør være rimeligt hurtige.

division er en lidt halvdyr affære.
Avatar billede penta Nybegynder
20. oktober 2003 - 17:23 #6
hmmm nå... er der nogen der kunne tænke sig at se min kode. Jeg er ved at gå ud af mit gode skind. Jeg ved ikke hvad jeg skal gøre for at gøre det hurtigere??
Avatar billede arne_v Ekspert
20. oktober 2003 - 17:28 #7
Jeg kunne godt kigge på den.

Jeg har leget lidt med big integers i C++ for en 5-6 år siden.

(ja - tiden flyver)
Avatar billede penta Nybegynder
20. oktober 2003 - 17:31 #8
Ok det lyder interessant. Min kode er ikke just kompliceret, så jeg tror ikke du får nogle problemer:) Jeg sender den til din e-mail eller ?
Avatar billede arne_v Ekspert
20. oktober 2003 - 17:34 #9
Ja.

arne_v@mail.danbbs.dk

Og forvent ikke nødvendigvis øjeblikkeligt svar.
Avatar billede penta Nybegynder
20. oktober 2003 - 17:36 #10
Nej jeg forventer ingenting. Jeg er bare glad fordi du vil forsøge at hjælpe mig.
Avatar billede penta Nybegynder
20. oktober 2003 - 18:46 #11
fun22, label1.caption er en streng og den skal lave om til en eks. integer hvis den skal ganges med 1000, ellers ganger du to forskellige typer og det kan man ikke.
Avatar billede penta Nybegynder
20. oktober 2003 - 18:46 #12
Jeg takker for hjælpen.
Avatar billede borrisholt Novice
21. oktober 2003 - 08:22 #13
penta >> Du tror ikke det er din primtals algoritme der er langsom ?

Jens B
Avatar billede borrisholt Novice
21. oktober 2003 - 08:27 #14
Send mig lige en mail .. Jeg vil også gerne se dit kode ....

Jens B
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