Das Ziel ist einfach: Geben Sie eine reale Lösung ungleich Null xfür die Gleichung sin(x) = -mxbei gegebener Eingabe min der geringsten Anzahl von Bytes aus.
Spezifikationen:
- Ihre Antwort muss auf 3 signifikante Zahlen korrekt sein.
- Sie können jede andere echte Lösung als die triviale Lösung ausgeben
x=0. Sie können davon ausgehenm, dass mindestens eine Lösung vorhanden ist. Sie können auch annehmenm!=0.
Eine offensichtlich suboptimale Python-Lösung mit Gradientenabstieg :
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
Testfälle
-0.25 -> ±2.4746
-0.1 -> ±2.8523 or ±7.0682 or ±8.4232
0.2 -> ±4.1046 or ±4.9063
x=0ist eine triviale Lösung. Sie sollten angeben, welche Lösung Sie möchten.
m=0hat Lösungen ( x=kπfür Ganzzahl k). Die Werte, für mdie es keine nicht trivialen realen Lösungen gibt, sind diejenigen, die zu weit entfernt sind 0.
ader gelöst werden sollsin(x)=-ax. Bitte sagen Sie nicht "Sie müssen es tatsächlich berechnen", da solche Anforderungen zu vage sind, um zu funktionieren.