Calcul efficace

La question :

Bonjour,

Je cherche un moyen de calculer le plus efficacement et precisement
possible l'equation suivante:

a * b
resultat = -------
c * d

les entiers a, b, c,d pouvant prendre n'importe quelle valeur sur 64
bits.

Est ce quelqu'un aurait une idee ?

Merci
--
Francis

Poser votre question sur le forum Programmation

Les 3 réponses :

À (at) Mon, 22 Nov 2010 09:01:20 +0100,
Francis Moreau écrivait (wrote):


Je cherche un moyen de calculer le plus efficacement et precisement
possible l'equation suivante:

a * b
resultat = -------
c * d

les entiers a, b, c,d pouvant prendre n'importe quelle valeur sur 64
bits.

Est ce quelqu'un aurait une idee ?


Peeut-on affirmer qu'on parle d'entiers, que la limitation '64 bits'
s'applique aussi aux résultats intermédiaires et au résultat lui-même et
qu'on ne peut pas utiliser de bibliothèques de calcul en précision
infinie ?

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>

On 11/22/2010 10:16 AM, Paul Gaborit a écrit :



À (at) Mon, 22 Nov 2010 09:01:20 +0100,
Francis Moreau écrivait (wrote):


Je cherche un moyen de calculer le plus efficacement et precisement
possible l'equation suivante:

a * b
resultat = -------
c * d

les entiers a, b, c,d pouvant prendre n'importe quelle valeur sur 64
bits.

Est ce quelqu'un aurait une idee ?


Peeut-on affirmer qu'on parle d'entiers, que la limitation '64 bits'
s'applique aussi aux résultats intermédiaires et au résultat lui-même et
qu'on ne peut pas utiliser de bibliothèques de calcul en précision
infinie ?


Et la méthode bête et méchante en base 2^32 est-elle insuffisante ?
(Représenter chaque nombre par un quadruplet
{a1, a2, a3, a4} ; a = a1 + a2 2^32 + a3 2^64 + a4 2^96, et transcrire
les opérations en celles sur les quadruplets)

Paul Gaborit <d> writes:


À (at) Mon, 22 Nov 2010 09:01:20 +0100,
Francis Moreau écrivait (wrote):


Je cherche un moyen de calculer le plus efficacement et precisement
possible l'equation suivante:

a * b
resultat = -------
c * d

les entiers a, b, c,d pouvant prendre n'importe quelle valeur sur 64
bits.

Est ce quelqu'un aurait une idee ?


Peeut-on affirmer qu'on parle d'entiers, que la limitation '64 bits'
s'applique aussi aux résultats intermédiaires et au résultat lui-même et
qu'on ne peut pas utiliser de bibliothèques de calcul en précision
infinie ?


oui.

--
Francis

Poser votre question sur le forum Programmation

Questions similaires :

algorithme itératif de calcul de distance

Salut. l'algorithme de Bresenham http://fr.wikipedia.org/wiki/Algorithme_de_trac%C3%A9_d'arc_de_cercle_de_Bresenham permet de tracer un cercle en utilisant des opération simple. existe t-il un algorithme pour remplir le disque avec la valeur de la distance des points par rapport à leur centre...

un peu d'explication sur une optimisation du calcul d'un checksumadler-32

Bonjour, Sur la page anglaise de wikipedia concerant le checksum adler-32 (, il y a cet algo: #define MOD_ADLER 65521 uint32_t adler(uint8_t *data, size_t len) /* data: Pointer to the data to be summed; len is in bytes */ { uint32_t a = 1, b = 0; while (len) { size_t tlen = len > 5550 ? 5550 :...

Calcul des coordonnées d'un point pour tracé géométrique

Bonjour, Dans le cadre d'un projet informatique je dois dessiner des flèches. Je dispose donc d'informations suffisantes sur les droites constituant les flèches pour les tracer Mon problème concerne le tracé du triangle formant la pointe de la flèche. J'ai schématisé rapidement le problème que...

Calcul de la distance d'un point à une droite dans R3

Bonjour, Je cherche l'algorithme de calcul de la distance entre un point P(x,y,z) et une droite passant par 2 points A(x,y,z) et B(x,y,z). (mes souvenirs de maths sont trop lointains) j'ai trouvé l'algorithme dans R2 mais pas pour R3. CalculerDistancePointDroite(P(x,y,z) , A(x,y,z) , B(x,y,z)...

calcul diagonale tv.

Bonjour, Je voudrais pouvoir à partir d'une tv de diagonale 16/9e savoir quelle diagonale ca me donnera si je l'utilise pour regarder un programme affichée en 4/3 (donc avec des bandes noires sur le coté). Quelqu'un à une idée de comment on peut calculer cela ? Merci.