[ASP] (49^17) mod 2773 werkt niet

Pagina: 1
Acties:

  • muis|IA
  • Registratie: Oktober 2001
  • Laatst online: 18-11-2022
ik heb hier stukie ASP code:

cijfer = 49^17

andercijfer = cijfer mod 2773


dan krijg ik een overflow van cijfer op zeg de 2e regel.
nu snap ik niet waarom cijfer = 49^17 wel werkt maar wanneer ik met de restwaarde ga rekenen dat ik dan pas een overflow krijg?

Een vergissing is menselijk maar om er een puinhoop van te maken heb je een computer nodig (met mij erachter)


Verwijderd

49^17 word in 'n double gerpopt omdat het niet in 'n long/int value past. op het moment dat je'n mod doet gaat ie er proberen 'n int/long/whatever van te maken waarde is veel te groot -> overflow..

  • muis|IA
  • Registratie: Oktober 2001
  • Laatst online: 18-11-2022
aha
nu snap ik probleem
maar enig idee hoe ik dat oplos?

Een vergissing is menselijk maar om er een puinhoop van te maken heb je een computer nodig (met mij erachter)


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Een bignumber class schrijven of ergens zoeken, waardoor je de werkelijke uitkomst onthoud ipv een benadering (wat met een float of double gebeurt).

Maar misschien is het handiger om ff wat algoritme bijbels uit de kast te trekken (Of wat op google gaan zoeken), want ik kan me herinneren dat voor de expressie (a^b)mod c een algoritme bestond waarbij je a^b niet als tussen resultaat uit hoeft te rekenen.

[ Voor 0% gewijzigd door Janoz op 25-10-2002 10:32 . Reden: hmm, toch maar wat extra koffie drinken.. Wat een berg tikfouten in zo'n klein stukje :+ ]

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


  • muis|IA
  • Registratie: Oktober 2001
  • Laatst online: 18-11-2022
om het hele gebeuren terug te rekenen bv 1801^157 mod 2773 (herinneren ik me als voorbeeld), gebruik ik een functie om die 1801^157 te ontbinden diezelfde functie kan ik nu natuurlijk ook gebruiken

Een vergissing is menselijk maar om er een puinhoop van te maken heb je een computer nodig (met mij erachter)