Votre tâche consiste à calculer la racine carrée de 2 en utilisant la méthode de Newton - avec une légère torsion. Votre programme consiste à calculer une itération à l'aide de la méthode de Newton et à générer le code source de l'itération suivante (qui doit pouvoir faire de même).
La méthode de Newton est décrite de manière assez exhaustive sur Wikipedia
Pour calculer la racine carrée 2 à l'aide de la méthode Newtons, vous:
- Définir
f(x) = x^2 - 2
- Définir
f'(x) = 2x
- Définir
x[0]
(la supposition initiale)= 1
- Définir
x[n+1] = x[n] - (f[n] / f'[n])
Chaque itération rapproche x [n] de la racine carrée de deux. Alors -
x[0] = 1
x[1] = x[0] - f(x[0])/f'(x[0]) = 1 - (1 ^ 2 - 2) / (2 * 1) = 1.5
x[2] = x[1] - f(x[1])/f'(x[1]) = 1.5 - (1.5 ^ 2 - 2) / (2 * 1.5) = 1.416666667
x[3] = x[2] - f(x[2])/f'(x[1]) = 1.416666667 - (1.416666667 ^ 2 - 2) / (2 * 1.416666667) = 1.414215686
- etc
Votre programme:
- Calculez
x[n]
où sen
trouve le nombre d'exécutions du programme - Sortie du code source dans un programme valide dans la même langue qui doit calculer
x[n+1]
et satisfaire les mêmes critères de cette question. - La première ligne du code source doit être le résultat du calcul, correctement commenté. Si la source nécessite quelque chose de particulier (comme un shebang) sur la première ligne, le résultat peut être mis sur la deuxième ligne.
Notez que
- Votre programme doit utiliser une estimation initiale de
x[0] = 1
- Les échappatoires standard s'appliquent
- Toutes les fonctions de puissance, racine carrée ou xroot intégrées sont interdites
- Votre programme ne doit accepter aucune entrée quelle qu'elle soit. Il doit être entièrement autonome.
Votre score est la taille de votre programme initial en octets UTF-8. Le score le plus bas l'emporte.
x = x-(x*x-2)/(2*x)
?