Kom ihåg mig?
Home Menu

Menu


Matematik: range till ny range?

Ämnesverktyg Visningsalternativ
Oläst 2009-10-01, 16:12 #1
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
Standard Matematik: range till ny range?

Det står still i huvudet just nu.
Har följande problem: Jag har ett värde, A, som befinner sig inom ett numeriskt intervall där B1 är det lägsta värdet (kan vara negativt) och B2 är det högsta (kan också vara negativt). Nu vill jag transformera A till dess motsvarighet i ett nytt intervall (C1 är min och C2 är max).

Jag skulle kunna räkna mha den procentuella skillnade mellan A och B1 och räkna om den procentuellt mot C1, men det känns inte rätt... eller?
Hur skulle en funktion se ut med dessa 5 inparametrar (pseudokod eller gärna c#).
Robert är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-10-01, 16:24 #2
Bjorne Bjorne är inte uppkopplad
Flitig postare
 
Reg.datum: Sep 2009
Inlägg: 374
Bjorne Bjorne är inte uppkopplad
Flitig postare
 
Reg.datum: Sep 2009
Inlägg: 374
Din beskrivning är någorlunda vag ... men här är mitt försök.
Kod:
def transform(a, b1, b2, c1, c2):
    delta_b = b2 - b1
    dist_b = a - b1
    scale = float(dist_b) / delta_b
    delta_c = c2 - c1
    dist_c = delta_c * scale
    return c1 + dist_c

print transform(2, 0, 10, 0, 1000)
Bjorne är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-10-02, 12:28 #3
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
Tack, det verkar ju fungera som tänkt (även om jag inte har testat med negativa tal etc)
Robert är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 00:58.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017