AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Formel/Funktion für Werte

Ein Thema von WorstNightmare · begonnen am 15. Nov 2011 · letzter Beitrag vom 16. Nov 2011
Antwort Antwort
Medium
Online

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#1

AW: Formel/Funktion für Werte

  Alt 15. Nov 2011, 20:45
Dass die Differenzen teils etwas oszillieren würde ich eher der Rundung zuschreiben. Es sieht so aus, als wäre die Basis eine Funktion, die dann entweder stückweise auf unterschiedliche Genauigkeiten gerundet wurde, oder sogar manuell.

Man nehme einfach nur mal f(x)=x^2:
Code:
 x f(x) auf 5 auf 10  diff
 0   0    0            --
 1   1    0              0
 2   4    5              5
 3   9   10              5
 4  16   15             10
 5  25   25             10
 6  36         30        5 <--
 7  49         50       20
 8  64         60       10 <--
 9  81         80       20
10 100        100       20
11 121        120       20
12 144        140       20
Solche Differenzen allein sind kaum ein Argument gegen eine Gesetzmäßigkeit, nur müsste man zur Funktion eben noch die intervallweisen Rundungsgenaugkeiten (und die Intervalle) ermitteln. Findet man dann noch eine Gesetzmäßigkeit bei den Intervallen und Genauigkeiten, steht einer Extrapolation nichts mehr im Wege
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
WorstNightmare

Registriert seit: 6. Okt 2008
159 Beiträge
 
RAD-Studio 2010 Arc
 
#2

AW: Formel/Funktion für Werte

  Alt 16. Nov 2011, 15:31
Ich werde es jetzt ersteinmal so machen, bis/falls es überhaupt eine bessere Lösung gibt. Der Code wird jetzt auch nicht so unglaublich oft aufgerufen, von daher spielt die Performance eh keine Rolle.

Trotzdem bedanke ich mich natürlich für eure bisherigen Bemühungen

Code:
        public static int getHp(int l) {
            if (l < 4)
                return 15 + (l - 1) * 5;
            else if (l < 11)
                return 35 + (l - 4) * 15;
            else if (l < 21)
                return 150 + (l - 11) * 25;
            else if (l < 26)
                return 405 + (l - 21) * 30;
            else if (l < 30)
                return 580 + (l - 26) * 70;
            else if (l < 46)
                return 900 + (l - 30) * 100;
            else if (l < 51)
                return 2520 + (l - 46) * 120;
            else if (l < 56)
                return 3200 + (l - 51) * 200;
            else if (l < 61)
                return 4300 + (l - 56) * 300;
            else if (l < 66)
                return 5900 + (l - 61) * 400;
            else if (l < 71)
                return 8000 + (l - 66) * 500;
            else if (l < 76)
                return 11000 + (l - 71) * 1000;
            else if (l < 126)
                return 17000 + (l - 76) * 2000;
            else if (l == 126)
                return 118000;
            else if (l < 152)
                return 120000 + (l - 127) * 5000;
            else
                return 250000 + (l - 152) * 10000;
        }
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz