L'objectif est simple: produire une solution réelle non nulle xdans l'équation sin(x) = -mx, en fonction de l'entrée m, dans le moins d'octets.
Caractéristiques:
- Votre réponse doit être correcte à 3 chiffres significatifs.
- Vous pouvez sortir n'importe quelle solution réelle autre que la solution triviale
x=0. Vous pouvez supposer qu'ilmexiste au moins une solution. Vous pouvez également supposerm!=0.
Une solution python évidemment sous-optimale utilisant la descente de gradient :
from math import *
from random import *
a=x=0.001
m = 5.
def dE(x):return 2*(sin(x)+m*x+1)*(cos(x)+m)
for i in xrange(1000): x-=dE(x)*a
print x
Cas de test
-0.25 -> ±2.4746
-0.1 -> ±2.8523 or ±7.0682 or ±8.4232
0.2 -> ±4.1046 or ±4.9063
x=0une solution triviale. Vous devez spécifier la solution que vous souhaitez.
m=0a des solutions ( x=kπpour entier k). Les valeurs mqui n'ont pas de vraies solutions non triviales sont celles qui sont trop éloignées 0.
apour résoudresin(x)=-ax. Veuillez ne pas dire "vous devez réellement le calculer", car les exigences comme celles-ci sont trop vagues pour fonctionner.