Hjælp til matematik! (java android)

Tags:    java android

Hej udviklere.

Jeg er ved at lave et app, der kan lave nogle budget-mæssige beregninger, til hjælp til privatøkonomien... Men har simpelthen svært ved et matematisk spørgsmål! Har prøvet i mange timer nu, men kan simpelthen ikke få det til.

Meningen er, at jeg vil indtaste hvor mange penge jeg har, og hvor mange dage der er tilbage i måneden.
Så regner den mit daglige gennemsnitlige beløb ud. Fint dertil...

Men nu vil jeg gerne lave en algoritme, hvor jeg yderligere kan indtaste, at hvis jeg klare mig med en mindre beløb end gennemsnittet i x antal dage, og gerne vil have gennemsnittet op på et større beløb... hvor mange dage skal jeg så klare mig for det mindre beløb?

Så jeg kan nu indtaste nogle oplysninger i appet:

fulde-beløb: Beløb på kontoen i dag (fx 6400).
antal dage tilbage: Antal dage tilbage i måneden (fx. 18)
(her bliver det daglige gennemsnit fx 355,55)
Nyt beløb pr dag: Hvor meget jeg vil klare mig med, i x antal dage (fx. 300).
Nyt gennemsnit: Hvor meget jeg gerne vil have den op på, pr. dag (fx. 400).

Hvordan regner jeg nu ud, hvor mange dage jeg skal klare mig for 300, altså 55 kr. mindre end jeg egentlig har pr. dag, før jeg har påvirket gennemsnittet for resten af måneden, så jeg kommer op på 400 pr. dag?

Hvordan pokker klarer jeg den?
På forhånd MANGE tak!



6 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Givet at:

int kontoBalance; // indeholder saldo på kontoen i dag
int dageTilbage; // indeholder antal dage tilbage af måneden
int minPrDag; // indeholder minimums forbrug pr dag
int maalPrDag; // indeholder det ønskede forbrug pr dag¨, de gode dage :)

så ville jeg beregne følgende:

double raadighedPrDag = kontoBalance / dageTilbage;

double overskudPrSpareDag = raadighedPrDag - minPrDag;

double sparedagePrMaalDag = (maalPrDag - minPrDag) / overskudPrSpareDag;

double optimaleMaalDage = dageTilbage / (sparedagePrMaalDag + 1);

double optimaleSpareDage = optimaleMaalDage * sparedagePrMaalDag;

Nu kan man jo ikke rigtig bruge de to optimale tal direkte, da de jo er decimaltal, men istedet bør man bruge floor på optimaleMaalDage og ceil på optimaleSpareDage hvilket vil give et lille overskud på kontoen hvis ikke de allerede tilfældigvis er heltal.

Det kan sikkert optimeres en del, men jeg ville gerne have at du forstår beregningen istedet for blot kopierer det over i din hjemmeopgave (eller hvad det nu er du laver).

Du må nok hellere også lave den om til engelsk ´det er god skik og brug :)



Indlæg senest redigeret d. 04.05.2015 18:02 af Bruger #2193
Altså, i mine ører lyder det som et simpelt regnestykke.. Men ret mig gerne hvis jeg har misforstået noget..

Fold kodeboks ind/udJava kode 


Jeg har sikkert misforstået noget, men så må vi tage den derfra..




Matematikken må være noget i stil med:
A x 30 + (18 - A) * 400 = 6400

...altså to ubekendte, og den slags gider jeg ikke :-)
Istedet kan man med få tests lave en binær søgning efter resultatet:

Fold kodeboks ind/udJava kode 




Matematikken må være noget i stil med:
A x 30 + (18 - A) * 400 = 6400

...altså to ubekendte, og den slags gider jeg ikke :-)
Istedet kan man med få tests lave en binær søgning efter resultatet:

Fold kodeboks ind/udJava kode 


Udover A, hvad er så din ubekendte her ? :)



hehe...(18 - A) er ubekendt nok for mig :-/

Der er højst sandsynligt en fuldstændig simpel matematisk løsning, men jeg gad ikke at lede efter den, så jeg kom med en imho god nok løsning.



Fandt laangt om længe ud af det :) Men det var knageme et sværere stykke matematik end jeg havde forventet...

(skriver det ikke lige i kode her)

Men fandt at hvis:

F: fulde beløb
A: antal dage tilbage
N: nyt beløb pr. dag
G: nyt gennemsnit

Fik jeg en ligning der hed:

F - N * x = (A - x) * G

Så jeg får at:

F = N * x + (A - x) * G

Og isolerer x:

x = (F - A * G) / (N - G)

..Men det virker ;)

(lidt hen ad det du også skrev Jonatan Hertel)

Ellers mange tak for jeres tid :D



Indlæg senest redigeret d. 05.05.2015 21:34 af Bruger #13473
t