BIGINT! UNE STRUCTURE POUR SURCHARGER LES ENTIERS (LONG) SANS LIMITE DE TAILLE.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
22 mars 2007 à 18:16
pifou25
Messages postés144Date d'inscriptionlundi 13 octobre 2003StatutMembreDernière intervention21 décembre 2014
-
30 mars 2009 à 21:32
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
pifou25
Messages postés144Date d'inscriptionlundi 13 octobre 2003StatutMembreDernière intervention21 décembre 2014 30 mars 2009 à 21:32
je n'aurais pas vraiment le temps...
qu'entend tu par construction, du BigInt? il s'agit juste d'un nombre écrit dans une chaine de caractère, tout le code consiste surtout à gérer les opérations arithmétiques. Pour les puissances j'ai peché un code sur internet qui optimise le calcul, je ne saurais pas t'expliquer la théorie mathématique qui se cache la derrière mais c'est efficace, plus que de faire les boucles de multiplication en tout cas.
alexandreillusion
Messages postés37Date d'inscriptionlundi 7 juillet 2008StatutMembreDernière intervention14 mars 2011 29 mars 2009 à 14:53
Est ce qu'il t'est possible de faire un tutoriel expliquant la construction d'un BigInt? Car je me perd dans le code...
En tout c'est une source vraiment utile. Pour calculer des combinaisons élevée par exemple.
Merci a toi!
pifou25
Messages postés144Date d'inscriptionlundi 13 octobre 2003StatutMembreDernière intervention21 décembre 2014 10 avril 2007 à 17:04
J'ai réussi à me débarasser d'un problème qui m'embetait beaucoup: le fait d'avoir autant de déclarations des opérateurs qu'on a de TYPE : par exemple A(BigInt)+B(BigInt), puis A(BigInt)+B(Long) puis A(Long)+B(BigInt) ... etc pour chaque opérateur (+-*/ et aussi = <> < > <= >= ça devenait fastidieux)
L'astuce pour s'en débarasser consiste à implémenter l'interface IEquatable(Of Long) et les opérateurs CType() qui permettent de traduire automatiquement tout entier (Short Int et Long) en un BigInt!
(ma structure sur les réels avance peu mais je ne désespère pas de la sortir quand même d'ici quelques semaines ^^ merci pour les encouragements)
cs_Patrice99
Messages postés1221Date d'inscriptionjeudi 23 août 2001StatutMembreDernière intervention 9 septembre 2018 25 mars 2007 à 08:53
Pas mal du tout !
Si tu veux nettoyer le zip, enlève les répertoires Obj et Bin, ça sera déjà pas mal.
Quand tu seras sur les réels, c'est surtout la précision à la demande qui sera utile (nombre de décimales justes souhaité).
FREMYCOMPANY
Messages postés276Date d'inscriptionjeudi 12 janvier 2006StatutMembreDernière intervention22 décembre 2008 24 mars 2007 à 17:46
Attention avec les bigNum ==> Faut bien faire gaffe avec des cas comme 1/3 = 0.[3]...
Avec ca on peut vite sursaturer la mémoire d'un PC juste pour une précisition inutile...
pifou25
Messages postés144Date d'inscriptionlundi 13 octobre 2003StatutMembreDernière intervention21 décembre 2014 23 mars 2007 à 12:18
La précédente source gère les nombres complexes (de la forme a+ib, a et b sont double). celle ci gère les entiers sans limite de capacité (d'où BigInt).
Dans le zip j'ai aussi remis aussi la source des complexes mais avec a et b déclarés en BigInt du coup. Mais c'était pas le but, je propose ici une autre structure qui n'a rien à voir avec les complexes.
Et lorsque j'aurais fini ma structure BigNum (numérique entier ou pas, à précision infinie) je pense aussi créer une nouvelle source :)
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 22 mars 2007 à 18:16
salut,
quelle est la différence avec ta précédente source?
pourquoi ne pas l'avoir juste mise à jour?
++
30 mars 2009 à 21:32
qu'entend tu par construction, du BigInt? il s'agit juste d'un nombre écrit dans une chaine de caractère, tout le code consiste surtout à gérer les opérations arithmétiques. Pour les puissances j'ai peché un code sur internet qui optimise le calcul, je ne saurais pas t'expliquer la théorie mathématique qui se cache la derrière mais c'est efficace, plus que de faire les boucles de multiplication en tout cas.
29 mars 2009 à 14:53
En tout c'est une source vraiment utile. Pour calculer des combinaisons élevée par exemple.
Merci a toi!
10 avril 2007 à 17:04
L'astuce pour s'en débarasser consiste à implémenter l'interface IEquatable(Of Long) et les opérateurs CType() qui permettent de traduire automatiquement tout entier (Short Int et Long) en un BigInt!
(ma structure sur les réels avance peu mais je ne désespère pas de la sortir quand même d'ici quelques semaines ^^ merci pour les encouragements)
25 mars 2007 à 08:53
Si tu veux nettoyer le zip, enlève les répertoires Obj et Bin, ça sera déjà pas mal.
Quand tu seras sur les réels, c'est surtout la précision à la demande qui sera utile (nombre de décimales justes souhaité).
24 mars 2007 à 17:46
Avec ca on peut vite sursaturer la mémoire d'un PC juste pour une précisition inutile...
23 mars 2007 à 12:18
Dans le zip j'ai aussi remis aussi la source des complexes mais avec a et b déclarés en BigInt du coup. Mais c'était pas le but, je propose ici une autre structure qui n'a rien à voir avec les complexes.
Et lorsque j'aurais fini ma structure BigNum (numérique entier ou pas, à précision infinie) je pense aussi créer une nouvelle source :)
22 mars 2007 à 18:16
quelle est la différence avec ta précédente source?
pourquoi ne pas l'avoir juste mise à jour?
++