Algorithmus herausfinden von Zahlenfolge?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Also bei sowas am besten erst einmal plotten. Also so:

Bild zum Beitrag

Das sieht nach einer einfachen Exponentialfunktion aus. 2. Grades.

Spiele machen so etwas aber auch gerne unnoetig kompliziert. Aber wir koennen ja mal versuchen eine einfache Quadratische Funktion aus den Punkten zu bilden, vielleicht haben wir ja Glueck und unsere Annaeherung ist gut genug.

Da ich jetzt nicht viel manuell rechnen will mache ich das mal fix mit einem online Rechner aber allgemein braucht man nur 3 Punkte in die allgemeine Formel einer Quadratischen einzusetzen und dann die Unbekannten aufloesen: http://www.analyzemath.com/parabola/three_points_para_calc.html

Um die Genauigkeit zu erhoehen nehme ich Punkte, die weiter auseinander liegen. (Also nicht direkt nebeneinander sind) Ich nehme auch nicht den ersten, da es dort vielleicht durch Rundungsfehler wegen der niedigen Zahlen auch zu Problemen kommen koennte.
Also z.B.
3|18
10|307
17|1375

Die Website gibt mir nun dieses Ergebnis:

Bild zum Beitrag

Das ist mit Sicherheit nicht genau was das Game tut, da es doch sehr schiefe Zahlen sind. Aber nimmt man dies nun sollte es genau genug sein um ungefaehr die Erfahrung fuer Level 18 vorherzusagen. Also x = 18 einsetzen.

Das ergibt nun 1591,176, wir runden ab und kommen auf wahrscheinlich 1591 XP.

Das ist nicht 100% genau, da man nicht wissen kann was fuer eine Funktion die Devs da genau verwenden, dafuer braucht man genauere Analysemethoden aber es ist schon genug um eine relativ genaue Vorhersage treffen zu koennen. Man kann auch probieren ob bei einem schon bekannten Wert auch das Gleiche wieder herauspurzelt:

z.B. x = 13
Das ergibt dann 669.331 anstatt der tatsaechlichen 639.

Nun faellt schon auf, dass es wohl keine Quadrahtische Funktion ist, sondern vielleicht eine Kubische. Leider gibt es eine unendliche Anzahl von Funktionen, die auf eine Zahlenfolge passen koennten. Somit weiss man nicht genau welche Funktion es sein muss nur anhand der Zahlen. Da hilft nur Erfahrung und ausprobieren. Wenn man eine gefunden hat, die mit absolut glatten Zahlen heraus kommt dann hat man auch "den code geknackt" sozusagen.

Es gibt ein Tool, das dies erleichtert, das findet sich hier:

https://mycurvefit.com/

Da kann man seine Punkte eingeben und versuchen verschiedene Funktionen zu "passen" um zu sehen ob eine doch geht.

Woher ich das weiß:Studium / Ausbildung
 - (Schule, Mathematik, Algorithmus)  - (Schule, Mathematik, Algorithmus)

Alzurana  29.01.2019, 19:09

Habe aus langeweile mit dem Tool ein bisschen rumgespielt. Die genaue Funktion habe ich immer noch nicht aber eine doch sehr genaue Annaeherung nun

y = 2.088235 + 2.334967*x + 0.2577399*x^2 + 0.256106*x^3

0
  1. man müsste schon n bisschen über das System wissen, das diese Zahlenfolge gemacht hat...
  2. oder man braucht viel mehr Zahlen...
  3. ein Polynom n-ten Grades kann man perfekt durch (n-1) Punkte biegen...
  4. aber sowas suchst du wohl nich...
  5. bei ner Geraden könnte man die Summe der Quadrate des Fehlers in jedem Punkt minimieren...
  6. das geht wohl so ähnlich auch bei log, exp, sin, cos, ... aber nach ner Schwingung sehn die Beispiel-Zahlen ja nun wirklich nich aus...
Woher ich das weiß:Studium / Ausbildung

Tannibi  29.01.2019, 16:03
ein Polynom n-ten Grades kann man perfekt durch (n-1) Punkte biegen...

Durch n+1 Punkte.

0
RIDDICC  29.01.2019, 16:56
@Tannibi

ja... blush... hab extra vorher drüber nachgedacht an dem Beispiel einer Geraden... *heul* :)

obwohl: n-1 ist auch nich ganz falsch... bloß eben bisschen doof... gacker

0
Alzurana  29.01.2019, 19:15
@RIDDICC

Ich will ja nicht angeben ihr beiden aber ich hab als ich fuer meinen Beitrag nach Tools online geschaut hab das hier gefunden: https://mycurvefit.com/

LEIDER gibts nur nen kostenlosen Test, das ist schon sehr bloed. Sowas braeuchte man in openSource und kostenlos. Einfach zu geil, mir ging sofort die Hose auf als ich es ausprobiert hatte. ;-;

1