Avatar billede borrisholt Novice
23. august 2007 - 10:35 Der er 4 kommentarer og
1 løsning

Mere matamatik

Jeg psotede i går et matamatik spm, som Erik venligst hjalp mig med. Men nu er der vrøvl med mig igen.

Jeg har en skala der er nummeret 0, 1, 2 .... Men det skal vises som 125, 250, 500 etc. Til det formål har jeg skrevet to funktioner til at regne hhv den ene og den anden vej:

function InternalToExternalValue(const InternalValue: Double): Double;
begin
  Result := 125 * Power(2, InternalValue);
end;

function ExternalToInternalValue(const ExternalValue: Double): Double;
begin
  Result := Log2(ExternalValue / 125);
end;

Eller på alm matematisk :
  f(x) = 125 * 2^x
  f(x) = Log2(x/125)

Meen her kommer mit problem. Det virker fint for heltal, men ikke for "halve tal", fx. 2.5 eller det vil sige mine funktioner er hinandens resiprocke, men jeg får ikke det ønskede resultat. fordi hvis jeg lader x være 3,5 Så får jeg svaret 1414.21 men jeg ønskede 1500.

Er der nogen der kan skrive en funktion der retuner

F(2) = 500
F(2.5) = 750
F(3) = 1000
f(3.5) = 1500
f(4) = 2000

Eller er jeg bare nød til at lave en konveterings tabel ?

Jens B
Avatar billede erikjacobsen Ekspert
23. august 2007 - 10:49 #1
"hvis jeg lader x være 3,5 Så får jeg svaret 1414.21 men jeg ønskede 1500."  ??

Men din formel giver 1414.2135623731  -  jeg forstår ikke hvad du skal have lavet.
Avatar billede borrisholt Novice
23. august 2007 - 11:02 #2
I alt sin enkelthed så har f(2) = 500 og f(3) = 1000, så ville jeg gerne f(2.5) = 750
fordi halvvejs mellem 2 og 3 finder du 2.5 og halvvejs mellem 5++ og 1000 finder du 750.

Jens B
Avatar billede borrisholt Novice
23. august 2007 - 11:02 #3
5++ = 500 selvfølgelig
Avatar billede erikjacobsen Ekspert
23. august 2007 - 11:16 #4
Ok, det kan man jo godt. Eksponentialfunktionen (her "Pow") er ikke liniær mellem heltalsargumenter, men med passende udregninger så ... Skitse

x=3.5

1) Find heltallet under x dvs 3
2) Find heltallet over x dvs 4
3) Find kommadelen: 0.5
4) udregn f(3) = 1000
5) udregn f(4) = 2000
6) udregn 1000 + (2000-1000)*0.5
Avatar billede borrisholt Novice
01. august 2008 - 10:59 #5
tak Erik for din hjælp ... Så vidt jeg husker samler du ikke på points, så jeg lukker ..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester