Outils pour utilisateurs

Outils du site


profgra:peda:generation_rationnels

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
profgra:peda:generation_rationnels [2015/02/27 13:21]
admin Affichage des rationnels
profgra:peda:generation_rationnels [2015/08/28 09:06] (Version actuelle)
Ligne 3: Ligne 3:
 Suite à [ce tweet](https://​twitter.com/​CompSciFact/​status/​571079267414626304),​ Suite à [ce tweet](https://​twitter.com/​CompSciFact/​status/​571079267414626304),​
 voici deux implémentations de `f`. voici deux implémentations de `f`.
 +
 +Pour simplifier, on ne calcule pas la valeur 0.
  
 ## Sans cache ## Sans cache
  
-(MicroAlg "​gen_rat1"​)+(MicroAlg "​gen_rat1" ​{"​version":​ "​0.3.17"​})
 (Definir (f n) (Definir (f n)
     "Voir le tweet plus haut."     "Voir le tweet plus haut."
     "​ProfGra"​     "​ProfGra"​
-    (Si (<= n 1)+    (Si (= n 1)
      Alors      Alors
-        (Retourner ​n)+        (Retourner ​1)
      Sinon      Sinon
         (Si (= (% n 2) 0)         (Si (= (% n 2) 0)
Ligne 23: Ligne 25:
 (!!! "​Construction et affichage d’une liste de valeurs."​) (!!! "​Construction et affichage d’une liste de valeurs."​)
 (Initialiser liste (Liste)) (Initialiser liste (Liste))
-(Initialiser i 0)+(Initialiser i 1)
 (Tant_que (<= i 100) Faire (Tant_que (<= i 100) Faire
     (Ajouter_a liste (f i))     (Ajouter_a liste (f i))
Ligne 31: Ligne 33:
 (!!! "​Affichage des rationnels."​) (!!! "​Affichage des rationnels."​)
 (Affecter_a i 1) (Affecter_a i 1)
-(Tant_que (<= i 100) Faire+(Tant_que (<= i 99) Faire
     (Afficher (Concatener (Nieme liste i) "/"​ (Nieme liste (+ i 1)) " "))     (Afficher (Concatener (Nieme liste i) "/"​ (Nieme liste (+ i 1)) " "))
     (Affecter_a i (+ i 1))     (Affecter_a i (+ i 1))
 ) )
- 
 (/MicroAlg) (/MicroAlg)
  
 ## Avec cache ## Avec cache
  
-Bientôt !+Ici on se sert d’une liste à accès global que l’on construit jusqu’à l’entier donné, plus 1. 
 + 
 +Plus de récursion ici, on pioche dans les valeurs déjà calculées avec `(Nieme liste ...)` 
 +au lieu d’appeler `(f ...)`. Aussi, on utilise `i` au lieu de `n`. 
 + 
 +(MicroAlg "​gen_rat2"​ {"​version":​ "​0.3.17"​}) 
 +(Initialiser liste (Liste)) 
 +(Definir (Construire_jusqua n) 
 +    "Voir le tweet plus haut."​ 
 +    "​ProfGra"​ 
 +    (Initialiser i 1) 
 +    (Tant_que (<= i n) Faire 
 +        (Si (= i 1) 
 +         ​Alors 
 +            (Ajouter_a liste 1) 
 +         ​Sinon 
 +            (Si (= (% i 2) 0) 
 +             Alors (Ajouter_a liste (Nieme liste (/ i 2))) 
 +             Sinon (Ajouter_a liste (+ (Nieme liste (/ (- i 1) 2)) 
 +                                       ​(Nieme liste (+ (/ (- i 1) 2) 1)))) 
 +            ) 
 +        ) 
 +    (Affecter_a i (+ i 1)) 
 +    ) 
 +
 +(!!! "​Construction et affichage d’une liste de valeurs."​) 
 +(Construire_jusqua 100) 
 +(Afficher liste) 
 +(!!! "​Affichage des rationnels."​) 
 +(Affecter_a i 1) 
 +(Tant_que (<= i 99) Faire 
 +    (Afficher (Concatener (Nieme liste i) "/"​ (Nieme liste (+ i 1)) " ")) 
 +    (Affecter_a i (+ i 1)) 
 +
 +(/​MicroAlg) 
 + 
 +## Conclusion 
 + 
 +Reste à expliquer pourquoi le temps d’exécution est aussi proche !
profgra/peda/generation_rationnels.txt · Dernière modification: 2015/08/28 09:06 (modification externe)