Boucle sans boucle

Discutez d'informatique ici !
Rouvire
Membre Naturel
Messages: 29
Enregistré le: 02 Fév 2014, 16:16

Boucle sans boucle

par Rouvire » 15 Mar 2019, 18:35

Bonjour,
Soit la boucle informatique

Dif = X (avec X > 0 et Entier): Pas = Y (avec Y > 0, impair et Entier)
While Dif > 0
.......Dif = Dif - Pas: Pas = Pas + 2
Wend
Fin-Dif = Dif: Fin-Pas = Pas

Je cherche à connaitre le nombre de fois NbBcl qu’un programme effectue cette boucle mais sans la faire réellement, ainsi que les valeurs de sortie Fin-Dif et Fin-Pas.

Par exemple avec Dif = 3131 et Pas = 159 après 18 boucles on arrive à Fin-Dif = -37 et Fin-Pas = 195

Cette arrivée est la même que si on partait d’un Dif2 = Dif + ((Pas-1) * (Pas-1))/4) et d’un Pas2 = 1

Par exemple Dif2 = 3131 + (158 * 158)/4 = 9372 et Pas2 = 1 après 97 boucles on arrive aussi à -37 et 195

A partir de là on a: NbBcl = (Fin-Pas – Pas)/2. Ex: NbBcl = (195 – 159)/2 = 18

Quand dans une telle boucle on part d’un Pas égal à 1 on peut déterminer le nombre de boucles NbBcl et les valeurs de sortie Fin-Dif et Fin-Pas par une autre méthode.

Il faut chercher le carré Z² immédiatement et strictement inférieur à Dif.

Par exemple le carré immédiatement inférieur à 9372 est 9216 soit 96*96.

On a Alors: Nombre de boucles NbBcl = Z + 1, Valeurs d’arrivée Fin-Dif = Dif – Z² - 2Z – 1 et Fin-Pas = 2Z + 3.

Dans l’exemple NbBcl = 96 + 1 = 97, Fin-Dif = 9372 – 9216 – 192 – 1 = -37, Fin-Pas = 192 + 3.

Je voudrais un algorithme qui trouve le carré immédiatement inférieur à un nombre donné et savoir comment ça marche (je n’ai pas vraiment trouvé sur le Net). En VBA il y a la fonction Z = Int(Sqr(Nb)).



 

Retourner vers ϟ Informatique

Qui est en ligne

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