Modulo

Signaler
Messages postés
105
Date d'inscription
jeudi 16 mai 2002
Statut
Membre
Dernière intervention
22 janvier 2009
-
Messages postés
105
Date d'inscription
jeudi 16 mai 2002
Statut
Membre
Dernière intervention
22 janvier 2009
-
Petite formule math que je viens de trouver pour contourner un probleme des longs. (Depacement capacite)

(x * y) Mod w = (x Mod w * Y Mod w) Mod w

Bien sur la 2e solution est plus longue mais elle peut evier le probleme comme j'ai eu quand x et y sont des longs avec des grandes valeurs

6Po

4 réponses

Messages postés
72
Date d'inscription
mardi 26 février 2002
Statut
Membre
Dernière intervention
20 juin 2003

Ceci va fonctionner très bien, à condition que 'w' ne soit pas trop grand ! s'il dépasse la valeur critique de 65 536 (2^16) pour un long signé, ou 4 294 967 296 (2^32) pour un long non signé, alors il peut y avoir un dépassement de capacité. Et comme en VB, on n'a accès qu'à des longs signés, c'est presque foutu si w>65 536...

(: Sibo ;)
0
Messages postés
105
Date d'inscription
jeudi 16 mai 2002
Statut
Membre
Dernière intervention
22 janvier 2009

C'est clair il faut que w <= racine carre de la valeur max du type.

Pour un entier envion 194... max entier 32767

Doit surment avoir un autre truc mais bon deja modulo 194 c'est pas mal :D

==============
6Po

[mailto:6po@dreamersteam.org Email]
0
Messages postés
11
Date d'inscription
mercredi 28 août 2002
Statut
Membre
Dernière intervention
6 janvier 2003

Est ce qu'on pourrait pas faire un changement de base ? Comme ça le nombre serait moins grand.
Mais dans ce cas il faut un module pour faire les calculs avec ces nombres. Exemple en hexa, il y a des lettre (A, B, C,...) mais il y en a aussi en base 36, mais que vb ne sait pas utiliser. D'où l'interet d'un ou plusieurs modules pour faire les calculs.
0
Messages postés
105
Date d'inscription
jeudi 16 mai 2002
Statut
Membre
Dernière intervention
22 janvier 2009

On peut aussi faire comme les babylonniens et calculer en base 60 :D
C'est pour ca qu'on a 60 min dans 1 heure :D

fo dire 60 a bcp de divisieur.

15, 20, 30, 5,

c'est pour ca qu'on a le 1/4 d'heure :D

Non hormis la base 16 ou peutetre la base 32 avec de l'imagination mais c'est pas prevu pour... le plus rapide reste toujours la version binaire a 2 positions...

==============
6Po

[mailto:6po@dreamersteam.org Email]
0