Algorithme

Discutez d'informatique ici !
psika
Messages: 4
Enregistré le: 11 Mai 2006, 20:42

Algorithme

par psika » 23 Fév 2007, 15:46

Pouvez vous maider a comprendre cet exercice basé sur Caml Light, svp??

Ecrire une fonction:
dichtomie : (float->float)->float*float->float->float

telle que

dichtomie f (borne_inf, borne_sup) precision retourne la valeur approchée a dun reel r de lintervalle (borne_inf,borne_sup) tq f(r)=0 à la precision, c-a-d que la distance entre a et r ne doit pas depasser cette précision. On supposera que la fonction f est usuelle.
On rappelle que l'existence d'un tel r nest gearantie que si la fonction change de signe pr son eval aux bornes de l'intervalle. r est au moins dans un des demi intervalles dt une borne est le milieu et que le changement de signe se réalise à coup pour un des deux.



Quidam
Membre Complexe
Messages: 3401
Enregistré le: 03 Fév 2006, 17:25

par Quidam » 23 Fév 2007, 17:55

Ben quand ce sera en français, tu as une chance d'avoir des réponses !

Dominique Lefebvre
Membre Légendaire
Messages: 8007
Enregistré le: 03 Déc 2005, 13:00

par Dominique Lefebvre » 23 Fév 2007, 18:03

"Selon que notre idée est plus ou moins obscure, l'expression la suit, ou moins nette ou plus pure.Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément !" Boileau....

Je pense que tu devrais faire l'effort de poser ton problème de manière ordonnée en définissant les termes que tu emplois. Et ton algorithme sera écrit à moitié....

Quidam
Membre Complexe
Messages: 3401
Enregistré le: 03 Fév 2006, 17:25

par Quidam » 23 Fév 2007, 18:50

Dominique Lefebvre a écrit:"Selon que notre idée est plus ou moins obscure, l'expression la suit, ou moins nette ou plus pure.Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément !" Boileau....


Bravo ! C'est ma citation préférée !

psika
Messages: 4
Enregistré le: 11 Mai 2006, 20:42

par psika » 24 Fév 2007, 12:36

voila ce que jai essaye detablir:

let rec dichotomie f(borne_inf,borne_sup)precision
let f(borne_inf)=f(borne_inf) && f(borne_sup)=f(borne_sup)

if f(borne_inf)*f(borne_sup)>0
then "impossible"
else borne_inf=mini && borne_sup=maxi
in
let milieu=(mini+maxi)/2
in
if f(mini)*f(milieu)>0
then dichotomie (mini;milieu)
else dichotomie (milieu;maxi)

je pense avoir un pb au niveau du typage et aussi au niveau de la redac' mais je ne coprends pas lesquels...si vous pouviez mexpliquer mes erreurs!
merci davance!

ghghgh
Membre Relatif
Messages: 305
Enregistré le: 04 Aoû 2006, 16:20

par ghghgh » 17 Mar 2007, 01:03

hum... je ne comprends pas trop le problème
mais si tu veux une dichotomie qui fonctionne :

let search key =
let rec binary_search posL posR =
if posL = posR then
(key = values.(posL))
else begin
let posM = (posL + posR) / 2 in
if key <= values.(posM)
then binary_search posL posM
else binary_search (posM+1) posR
end in
binary_search 0 (pred nb_values)

j'espère que tu auras trouvé ton bonheur là-dedans :s
bah, sinon continue de chercher :p

bonne soirée

wouf
Membre Relatif
Messages: 203
Enregistré le: 17 Fév 2007, 15:55

par wouf » 17 Mar 2007, 19:19

f (borne_inf, borne_sup)=(borne_inf+borne_sup)/2

mais je n'ai lu que le titre :ptdr:

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 21 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