Avatar billede poloen Nybegynder
20. november 2012 - 13:29 Der er 2 kommentarer og
1 løsning

Opsparingsformel

Hej Eksperten.

Jeg har matematik og blev fremvist en opsparingsformel som vist inde på
http://www.jyttemelin.dk/30%20Opsparingsformlen%20annuitet.doc
problemet er at min lærer gav opgaven til dem som var hurtige, og vedkommende kan ikke forklare den selv.

Spørgsmålet er, hvordan skrives den ind så den virker efter hensigten?
Jeg har en to andre  formler som jeg tror pågældende formel også finder resultatet.
Koden er skrevet i Python og ser således ud:

from math import pow

def bank(r, t, k, a):
    for x in range(1, t + 1):   
        k = k + k * r - a
        print "Termin nr.\t", x
        print "Kapital\t\t", k

def bankab(r, t, k, a):
    if a == 0:
        k = k * pow((1 + r), t)
        print "Termin nr.\t", t
        print "Kapital\t\t", k
    elif a > 0:
        for x in range(1, t):
            k = k + (a * (pow((1 + r), t) - 1) / r)
            print "Termin nr.\t", x
            print "Kapital\t\t", k
 
ren = 0.17
ter = 10
kap = 10000
afd = 1200

bank(ren, ter, kap, afd)
print
print
bankab(ren, ter, kap, afd)
Avatar billede arne_v Ekspert
20. november 2012 - 16:17 #1
proev og start med at forklare:
- hvad du vil beregne
- hvad den viste kode burde goere
- hvad den viste kode faktisk goer
Avatar billede poloen Nybegynder
20. november 2012 - 17:11 #2
Ok
- Problemet at jeg slet ikke ved hvad formlen inde på linket skal beregne. Jeg gætter på den beregner det samme som funktion bank, det samme med bankab hvis a == 0.
Jeg vil gerne beregne et lån i en bank, kapital er det jeg låner, der er en rente som sætter 17 procentdele af det nuværende kapital til lånet hvert termin, afdraget er det som jeg vetaler tilbage hvert termin.
- bank finder frem til mit resultat, men bankab finder kun resultatet hvis a == 0.
- bankab burde gøre det samme som bank hvis a > 0.
Avatar billede poloen Nybegynder
21. november 2012 - 17:47 #3
Jeg har cracket den.
hvis a > 0, skal funktion bankab ikke ind i en løkke.
formlen skal ikke være k + (a * (pow((1 + r), t) - 1) / r), men k * pow((1 + r), t) - 1) / r), her kommer en forklaring.
Det funktionen gør,
er at tage 1 + r, opløfte den i terminer også trække 1 fra,
for derefter tage rentens stigning efter i forhold til r's værdi til at starte med,
og gange den med k, så den finder r opløftet i t k gange.

Funktionen er noget ulogisk,
hvis man vil have den til at virke som bank eller bankab hvis a == 0,
hvis man vil forsøge at få bankab's funktion hvis a > 0,
skal den ikke ind i en løkke,
fordi den tager gennemsnittet af r igennem t.
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
Kurser inden for grundlæggende programmering

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