[c++] modulo van twee doubles

Pagina: 1
Acties:

  • dawuss
  • Registratie: Maart 2001
  • Laatst online: 01-02 20:46

dawuss

gadgeteer

Topicstarter
Ik ben in visual c++ een programmatje aan het schrijven waarbij getallen van 0 tot 255 tot de macht van een getal van maximaal 10 cijfers worden verheven en modulo een getal van ongeveer 200 cijfers. Deze cijfers zijn wel integer (geen getallen achter de komma) maar ik kan dus geen int of long int gebruiken. Ik heb voor het variabeletype double gekozen, maar dan mag ik niet modulo (%) gebruiken. Hoe kan ik dit oplossen?

micheljansen.org
Fulltime Verslaafde Commandline Fetisjist ©


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

double fmod (double x, double y) :Z

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • dawuss
  • Registratie: Maart 2001
  • Laatst online: 01-02 20:46

dawuss

gadgeteer

Topicstarter
in welke header vind ik die fmod?

bedankt voor de hulp, maar dat :Z vind ik een beetje flauw hoor, niet iedereen vindt dat vanzelfsprekend hoor :P

micheljansen.org
Fulltime Verslaafde Commandline Fetisjist ©


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

math.h?

Doet iets met Cloud (MS/IBM)


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op maandag 07 januari 2002 20:33 schreef dawuss het volgende:
maar dat :Z vind ik een beetje flauw hoor, niet iedereen vindt dat vanzelfsprekend hoor :P
Uhm... in de manual kijken is niet vanzelfsprekend :?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16:30

Janoz

Moderator Devschuur®

!litemod

Voor het verheffen van die macht zijn speciale algoritmes waarbij je niet eerst de macht uit hoeft te rekenen. fmod is mischien heel leuk, maar je antwoord is absoluut niet gegarandeerd het juiste. Waneer de significantie kleiner is dan de mantis weet je niet meer welk getal er als eerste voor de komma komt. Op dat moment is een modulus niet meer te berekenen.

Het algoritme is hier wel eens langsgevlogen.. In een topic over RSA encoding oid.. Zal wel ff zoeken..

Uit m'n boek 'Introduction to algorihms':
modular exponentiation
ab mod n

mod-Exp(a,b,n)
c = 0
d = 1
let (bk,bk-1,.....,b0) be the binary representation of b
for i = k downto 0
__do c = 2c
_____d = (d * d) mod n
_____if bi = 1
_______then c = c + 1
____________d = (d*a) mod n
return d

[edit]Nog ff een klein overtiep foutje eruit gehaald (eigenlijk een CnP foutje.. zie gequote code hieronder :) )

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • RickN
  • Registratie: December 2001
  • Laatst online: 14-06-2025
Op maandag 07 januari 2002 22:17 schreef Janoz het volgende:
Voor het verheffen van die macht zijn speciale algoritmes waarbij je niet eerst de macht uit hoeft te rekenen. fmod is mischien heel leuk, maar je antwoord is absoluut niet gegarandeerd het juiste. Waneer de significantie kleiner is dan de mantis weet je niet meer welk getal er als eerste voor de komma komt. Op dat moment is een modulus niet meer te berekenen.

Het algoritme is hier wel eens langsgevlogen.. In een topic over RSA encoding oid.. Zal wel ff zoeken..

Uit m'n boek 'Introduction to algorihms':
modular exponentiation
ab mod n

mod-Exp(a,b,n)
c = 0
d = 1
let (bk,bk,.....,bk) be the binary representation of b
for i = k downto 0
__do c = 2c
_____d = (d * d) mod n
_____if bi = 1
_______then c = c + 1
____________d = (d*a) mod n
return d
Ja, dat algoritme heb ik idd ooit gepost in een thread over RSA oid. Ik heb toen ook meteen naar mijn Introduction to Algoritms (2nd ed. *D ) gegrepen en daar staat idd dit algorime in. Ik vond het toen echter niet zo handig dat de binaire representatie van b nodig was, dus toen heb ik het ff herschreven zodat je die niet meer nodig hebt. Dat algorime heb ik ergens vooraan in de codebase thread gepost.

Aah, zie hier. Toch handig, zo'n codebase...

He who knows only his own side of the case knows little of that.

Pagina: 1