Recherche algorithme base 2

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
mathelot

recherche algorithme base 2

par mathelot » 26 Mar 2008, 08:38

bonjour,

je cherche un algorithme pour programmer le calcul
des digits de 1/3 en base 2.


Excellente journée à tous.



Flodelarab
Membre Légendaire
Messages: 6574
Enregistré le: 29 Juil 2006, 14:04

par Flodelarab » 26 Mar 2008, 09:40

:lol:

Pourquoi ne poses tu pas la division ?


Ne passons pas à côté des choses simples

mathelot

par mathelot » 26 Mar 2008, 12:14

Euh, comment je fais ?



je divise 1 par

peux-tu m'expliquer ?

Flodelarab
Membre Légendaire
Messages: 6574
Enregistré le: 29 Juil 2006, 14:04

par Flodelarab » 26 Mar 2008, 12:46

Image
Comme une division en décimal sauf que tu la fais en binaire.

D'ailleurs le résultat est juste. Voici la preuve:

Et c'est bien 1/3 ... exprimé en binaire évidemment.

mathelot

par mathelot » 26 Mar 2008, 15:46

merçi, j'ai compris.

Et pour développer racine de 2 ?

Flodelarab
Membre Légendaire
Messages: 6574
Enregistré le: 29 Juil 2006, 14:04

par Flodelarab » 26 Mar 2008, 15:51

pfiou! Là, ça se complique. Il faudrait un équivalent de l'extraction de racine en décimal pour le binaire.

As tu déjà extrait une racine en décimal, déjà ?


Nonnnnnnnn je pense à autre chose. Tu cherches un algo ? Utilises la dichotomie autour du nombre qui au carré fait 2.

mathelot

par mathelot » 26 Mar 2008, 16:04

je peux peut être faire

x(n+1)=(1/2) (xn+ 1/xn)
x0=2=

puisque c'est possible de diviser.

Flodelarab
Membre Légendaire
Messages: 6574
Enregistré le: 29 Juil 2006, 14:04

par Flodelarab » 26 Mar 2008, 16:07

mathelot a écrit:je peux peut être faire

x(n+1)=(1/2) (xn+ 1/xn)
x0=2=

puisque c'est possible de diviser.

T'auras un gros problème de précision.

Fait par dichotomie comme je t'ai dit. C'est le plus simple.

alben
Membre Irrationnel
Messages: 1144
Enregistré le: 18 Mai 2006, 21:33

par alben » 26 Mar 2008, 18:26

Flodelarab a écrit:T'auras un gros problème de précision.

Fait par dichotomie comme je t'ai dit. C'est le plus simple.

Bonjour,
Il me semble que la méthode la plus précise et la plus rapide pour extraire une racine en base 2 est celle de Newton (à peu près celle proposée par Mathelot) :
On veut trouver la racine de où M € [1/2;1[
On a avec
et avec a=M ou 2M selon la parité de k.
Appliqué à 2, cela donne xo=1 et a=2. x1 donne déjà 3 bits significatifs et ça double à chaque étape ; avec six itérations, on arrive à 160 bits, soit 50 décimales !
Bien entendu, cela suppose que l'on dispose de l'addition et de la division en binaire avec une précision suffisante.
Dans le cas général pour calculer n'importe quelle racine carrée, c'est très facile à programmer car on peut fixer le nombre d'itérations en fonction de la précision sur les opérations élémentaires :
nb de calculs de

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 77 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite