Avatar billede codemon Nybegynder
26. april 2002 - 14:15 Der er 4 kommentarer og
2 løsninger

store tal

Jeg har brug for at regne med meget store tal. Hvad er der i C++ som svarer til java.math.BigInteger eller java.math.BigDecimal

Og er der nogen der kan en smart algoritme til at udregne x^y mod n, så man ikke behøver at udregne et meget stort x^y hvis n alligevel er lille.
Avatar billede jpk Nybegynder
26. april 2002 - 14:18 #1
Der er ikke noget lign. Javas BigInteger/BigDecimal i C++, men det kan naturligvis laves (eller findes).
Avatar billede tson Nybegynder
27. april 2002 - 00:36 #2
Jeg ved ikke om det passer, men jeg synes det giver mening at

(x*y) mod n er det samme som (x mod n * y mod n) mod n.

Så slipper du får de helt store tal. Jeg har lige afprøvet det med nogle tilfældige tal, og det ser ud til at passe, men du bliver altså nødt til selv at finde et bevis for om det passer.
Avatar billede laffe Nybegynder
29. april 2002 - 22:48 #3
Hvor store er store tal ?
Avatar billede codemon Nybegynder
30. april 2002 - 08:55 #4
skal bruges til RSA primtals kryptering, ca. et par hundrede cifre. Måske 512 eller et par tusind bit.
Avatar billede codemon Nybegynder
14. august 2002 - 20:17 #5
Applied Cryptography: Protocols, Algorithms, and Source Code in C, af Bruce Schneier

Dette er bogen der giver algoritmer og logik på den absolut nemmeste måde, uden at blive slæbt igennem en doktorgrad af matematik.

tson, du har ret (hvordan du kan bare sådan kan se det forstår jeg ikke) og der er en lign. formel til x^y mod n
Avatar billede mikl-dk Nybegynder
28. oktober 2003 - 00:29 #6
Det er jo logisk, at man først laver en modules på faktorerne og derefter på produktet, da faktorerne modulus n ikke kan være større end produktet modulus n...

Gammel sag at rode på i :)

/mikl-dk
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