SUITE DE FIBONACI

cs_crashtest Messages postés 105 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 28 août 2005 - 5 mars 2005 à 00:15
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 14 janv. 2006 à 21:50
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/29916-suite-de-fibonaci

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
14 janv. 2006 à 21:50
de rien :)
content de voir que ça sert :)

mais ça n'a pas été noté :(
cs_algori Messages postés 868 Date d'inscription dimanche 26 décembre 2004 Statut Membre Dernière intervention 26 février 2008 1
14 janv. 2006 à 21:32
Merci, je pense que quelques bribes de ton code vont m'être utiles pour faire l'algo de puissance rapide.
@++
cs_crashtest Messages postés 105 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 28 août 2005
14 mars 2005 à 12:17
tu as résond steph666
comme sa sous ie sa marche
script :
<html>
<head>
<title>fibonaci</title>
<script>

function Int_big(nom,string){
/*
Ceci sert de constructeur....
*/
//on y déclare les variables
var taille=string.length;
var i;
//on déclare les variables de la class
this.nombre=new Array();
this.signe=1;
this.taille=0;
this.nom=nom;
//on déclare les fonctions
this.affiche=Int_big_afficher;
this.valeur=Int_big_valeur;
this.plus=Int_big_plus;
this.moins=Int_big_moins;
this.fois=Int_big_fois;
this.t_react=Int_big_t_react;
this.compare=Int_big_compare;
//on copie le nombre dans l'objet
for (i=0;i<taille;i++){
this.nombre[i]=string.charAt(taille-i-1)*1;
if (this.nombre[i]!=0)
this.taille=i+1;
}
}

function Int_big_afficher(obj){
/*
Ceci sert à afficher le nombre dans une case de texte
*/
var i;
obj.value=this.nom+"="+this.valeur();
}

function Int_big_valeur(){
/*
Cette fonction permet d'avoir dans une variable string, la chaine qui corespond aux caractères
*/
var i, valeurs=""; //on met la valeur à 0
for (i=0;i<this.taille;i++){ //on prends les valeurs caractères par caractères
valeurs=valeurs+this.nombre[this.taille-i-1]; //on les ajoute à la chaine
}
return valeurs; //et on renvoi
}

function Int_big_moins(add){
/*
Ceci sert à afficher le nombre dans une case de texte
*/
a=this.compare(add);
if (a=="egalite"){ //si les nombres sont égaux, alors on renvoi 0
for (i=0;i<taille1;i++){
this.nombre[i]=0;
}
this.t_react(); //on recherche la taille actuelle
}else if (a=="plus petit"){ //si le premier nombre est plus petit, alors on affiche une erreur
alert("la soustraction entre "+this.nom+" et "+add.nom+" n'a pas pu être effactuée... "+add.com+" est plus grand que "+this.com+"...");
}else{
var i;
for (i=0;i9){ //si on a une retenue alors :
this.nombre[i]-=10;
//ceci sert lorsque l'on ajoute un chiffre au nombre, car on n'a pas forcément assigné une valeur au chifre suivant
if (this.nombre[i+1])
this.nombre[i+1]++;
else
this.nombre[i+1]=1;
}
}
if (taille2){ //si le second nombre est le plus grand, alors on va mettre la fin du nombre à la fin de la valeur
for (i=taille1;i<taille2;i++){
this.nombre[i]=add.nombre[i];
// alert("i="+i);
}
}
this.t_react(); //calcule la taille
}

function Int_big_fois(add){
var i,j;
var taille2=this.taille;
var taille1=add.taille;
var valeur=new Array();
for (i=0; i <taille1+taille2+1 ; i++)
valeur[i]=0; //mets à 0 le tableau de valeur
for ( i = 0 ; i < taille1; i++){ //fait varier les nombres de a
for ( j = 0 ; j < taille2 ; j++){ //puis de b
valeur[i+j] += add.nombre[i] * this.nombre[j]; //calcule la multiplication et l'adition en même temps
}
}
for ( i = 0 ; i <valeur.length; i++){ //recopie le tableau de valeurs
while (9<valeur[i+j]){ //calcule la retenue
valeur[i+j+1]++;
valeur[i+j]-=10;
}
this.nombre[i]=valeur[i];
}
this.t_react(); //retrouve la taille
}

function Int_big_t_react(){
/*
cette fonction recalcule les tailles
*/
for (i=0;i<this.nombre.length;i++){
if (this.nombre[i]!=0)
this.taille=i+1;
}
}

function Int_big_compare(nbr){
/*
cette fonction permet de comparer deux nombres
*/
var taille1=this.taille;
var taille2=add.taille;
var reponse="egalite";

if (taille1<taille2)
reponse="plus petit"
else if (taille2<taille1)
reponse="plus grand"
else{
for (taille1=0;taille1<taille2;taille1++){
if (taille1<taille2){
reponse="plus petit"
taille1=taille2;
}else if (taille2<taille1){
reponse="plus grand"
taille1=taille2;
}
}
}
return reponse;
}

function min(a,b){
//donne le minimum entre a et b
var min="err";
if (a
</head>





La suite de fibonaci... (une histoire de lapins)



</html>
Steph666 Messages postés 74 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 5 juin 2008
14 mars 2005 à 11:20
en mettant tout dans le head, et ensuite en appelant le reste dans le body :

a.affiche(document.getElementById('a'));
b.affiche(document.getElementById('b'));

ça marche sous ie
Steph666 Messages postés 74 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 5 juin 2008
14 mars 2005 à 10:55
une des erreurs apparemment c que ton code doit être mis dans la balise head sinon la référence à l'objet marche pas, et ensuite dans la fonction d'affichage, obj.value n'a aucune existence pour lui, il a la valeur null.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
11 mars 2005 à 19:21
et l'erreur retournée est ....

je ne peux pas avoir ie... dsl...
cs_crashtest Messages postés 105 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 28 août 2005
11 mars 2005 à 11:01
Bon pour les ereurs j'ai utilisé un logiciel qui s'apelle script edit et qui m'indique la ligne d'ereur et le nombre de caractere.
1er ereur ligne : 103 caractere : 1
2ieme ereur ligne : 194 caractere : 3
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
11 mars 2005 à 07:06
la limite de U(n+1)/U(n) quand n tend vers + infinit eszt (1+sqrt(5))/2 (nombre d'or)
la_pin Messages postés 275 Date d'inscription mercredi 11 août 2004 Statut Membre Dernière intervention 15 décembre 2005
8 mars 2005 à 18:20
interessant d'autant plus que j'ai a rendre prochainement un devoir sur le nombre d'or qui est lié à la suite de fibonaci.
Merci coucou !
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
7 mars 2005 à 19:56
il te donne la ligne si tu mets détails...
cs_crashtest Messages postés 105 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 28 août 2005
7 mars 2005 à 00:27
Je ne serais t'expliquer l'erreur car sur IE il dit juste qu'il y a une erreur mais il ne dit pas laquel et sa craint pour faire des scripts quand on débute.
Dsl de ne pas pouvoir t'aider
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
5 mars 2005 à 18:20
la poo est la seule manière de faire un code vraiment joli en js... le js resterais autrement vraiment bordellique...

non, je n'ai pas lu ce livre...

merci pour ces encouragements.
mathieumg Messages postés 558 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 18 février 2006
5 mars 2005 à 16:24
Wow, je ne savais pas la POO possible en JS :)

Mathieu M-G
mathieumg@qc-net.com
fser Messages postés 74 Date d'inscription vendredi 26 septembre 2003 Statut Membre Dernière intervention 23 avril 2005
5 mars 2005 à 14:29
Désolé je n'ai pas lu
Da Vinci Code est un livre qui marche plutot bien qui parle d'une enigme autour de l'assassinat du conservateur du louvre qui a mis en scene sa mort de maniere assez surprenante > enquete et enigmes etc ...
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
5 mars 2005 à 10:59
ton explication, je l'ai mise plus haut...

c'est quoi :Da Vinci Code???
fser Messages postés 74 Date d'inscription vendredi 26 septembre 2003 Statut Membre Dernière intervention 23 avril 2005
5 mars 2005 à 10:57
Pour ceux qui ne savent pas la suite de Fibonacci ( 2C me semble-t-il ) est la suite qui a pour particularité que le 3eme nombre est la somme des deux précedents.
exemple : 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144

Pour info : tu as fait ça pour le fun, ou apres la lecture de Da Vinci Code ( que je recommande ;) ) ?
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
5 mars 2005 à 00:19
en fait, j'ai pas IE... si tu pouvais me donner le message d'erreur... ça pourait m'aider...

la suite de fibo est un grand classique des suites...

la librairie elle permet effectivement d'utiliser des nombres énormes (ces nombres doivent êtres dans l'ensemble des naturels N...)
cs_crashtest Messages postés 105 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 28 août 2005
5 mars 2005 à 00:15
Salut, j'ai voulu essayer avant de regarder le script et il ne marche pas alors je ne c'est pas si c'est parce que j'ai IE.
Mai si j'ai bien compris il devrait servir a calculer de très grand nombre. c'est sa???
Rejoignez-nous