Gyakorlati alapok

Játék az (uzsora)kamattal I.

 

Az egyik előző, Teremtsünk pénzt a semmiből! című fejezet már megadta a kellő alaphangulatot a pénzügyi műveletek további vizsgálataira. Ebben a fejezetben a kamat fogalmával foglalkozunk.

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

A kamat lényege, hogy ha valakitől pénzt vagy egyéb értéket kérünk kölcsön, akkor neki abból pénzügyi vesztesége keletkezhet, hiszen ő azt addig nem tudja saját céljaira felhasználni. A kamat szedésének tehát évezredeken keresztül ez volt az úgymond "erkölcsi" alapja.

 

Ez a szemlélet már a középkorban sem állta meg helyét, sőt a kamatszedés gyakorlatilag tiltott pénzügyi műveletté vált. Ebben jelentős szerep jutott a katolikus egyháznak, amely bibliai tanítások alapján erkölcsileg kérdőjelezte meg az eljárás létjogosultságát, ám a kamatszedés közgazdaságilag nézve is potenciálisan veszélyes volt a középkor gazdaságára. Legelőször ezt fogjuk bebizonyítani néhány futtatható Java-kóddal, ám előtte kis gazdaságtörténeti előzmény.

 

A középkorban a pénz, mint értékek váltóeszköze valóban érték-alapú volt; a középkori pénzt nemesfémekből: aranyból és ezüstből verték, amelyek azóta is önmagukban véve értékhordozók.

 

www.informatika-programozas.hu

 

A pénzként kibocsátott aranymennyiség viszonylag állandó volt (és egyedül az aranybányászat hatékonyságától függött), a standard aranymennyiség viszont nem tudott lépést tartani a gazdaság (értsd: a javak és szolgáltatások csereberéjének) későbbi, ugrásszerű fejlődésével. Ez azonban csak a kapitalizmus lendületes, hitelközpontú beindulásával okozott komolyabb likviditási fennakadásokat, a középkor a maga egyszerű, puritán vallásosságával és lelassult életszemléletével évszázadokon keresztül hibernált állapotban tartotta a gazdaságot.

 

Először kiindulásképpen nézzünk meg egy olyan futtatható Java-kódot, amely a kamatszedés folyamatát leegyszerűsítve és lépésről lépésre mutatja meg:

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args){
    float teljesAranyMennyiseg = 100000;
    System.out.println("Kezdetben a forgalomban lévő teljes aranymennyiség: " + teljesAranyMennyiseg);
    float bankAranyMennyiseg = teljesAranyMennyiseg / 100;
    System.out.println("Kezdetben a bank megszerzi a forgalomban lévő

                            teljes aranymennyiség 1/100 részét: " + bankAranyMennyiseg);
    float bankAranyMennyisegKezdetben = bankAranyMennyiseg;
    System.out.println("A forgalomban lévő teljes aranymennyiség emiatt:

                            " + (teljesAranyMennyiseg -= bankAranyMennyiseg));
   

    float hitelFelvevo = 0;
    float hitel = 10;
    float kamat = (hitel / 100) * 10;
    int futamido = 10;
    float haviTorleszto = (hitel / futamido) + (kamat / futamido);

    hitelFelvevo = hitel;
    System.out.println("Hitel a hitelfelvevőnek,

                            a banki aranymennyiség emiatt: " + (bankAranyMennyiseg -= hitel));
    System.out.println("A hitel teljes kamatmértéke: " + kamat + " (" + (kamat * 10) + " %)");
    System.out.println("1 havi törlesztő részlet: " + haviTorleszto);

    for(int honap = 1; honap <= futamido; honap++){
        bankAranyMennyiseg += haviTorleszto;
    System.out.println("A bank " + honap + ". havi aranymennyiségének növekedése: "

                                + bankAranyMennyiseg);
    }
    System.out.println("\nA bank teljes aranymennyiségének növekedése: "

                                + (bankAranyMennyiseg - bankAranyMennyisegKezdetben));
    }
}

 

Végeredmény:

Kezdetben a forgalomban lévő teljes aranymennyiség: 100000.0
Kezdetben a bank megszerzi a forgalomban lévő teljes aranymennyiség 1/100 részét: 1000.0
A forgalomban lévő teljes aranymennyiség emiatt: 99000.0
Hitel a hitelfelvevőnek, a banki aranymennyiség emiatt: 990.0
A hitel teljes kamatmértéke: 1.0 (10.0 %)
1 havi törlesztő részlet: 1.1
A bank 1. havi aranymennyiségének növekedése: 991.1
A bank 2. havi aranymennyiségének növekedése: 992.19995
A bank 3. havi aranymennyiségének növekedése: 993.2999
A bank 4. havi aranymennyiségének növekedése: 994.3999
A bank 5. havi aranymennyiségének növekedése: 995.4999
A bank 6. havi aranymennyiségének növekedése: 996.59985
A bank 7. havi aranymennyiségének növekedése: 997.6998
A bank 8. havi aranymennyiségének növekedése: 998.7998
A bank 9. havi aranymennyiségének növekedése: 999.8998
A bank 10. havi aranymennyiségének növekedése: 1000.99976

A bank teljes aranymennyiségének növekedése: 0.99975586

 

A nem egészen pontos végeredmények a float adattípusokkal való számolások kerekítései (és az ebből következő adattorzulások) miatt alakulnak ki, de lényegében pontosak. Például 0.99975586 lényegében 1.

 

Nyilvánvalóan a futamidő nem fogja megváltoztatni a visszafizetendő összeget, például 20 havi futamidő esetén:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args){
    float teljesAranyMennyiseg = 100000;
    System.out.println("Kezdetben a forgalomban lévő teljes aranymennyiség: " + teljesAranyMennyiseg);
    float bankAranyMennyiseg = teljesAranyMennyiseg / 100;
    System.out.println("Kezdetben a bank megszerzi a forgalomban lévő

                            teljes aranymennyiség 1/100 részét: " + bankAranyMennyiseg);
    float bankAranyMennyisegKezdetben = bankAranyMennyiseg;
    System.out.println("A forgalomban lévő teljes aranymennyiség emiatt:

                            " + (teljesAranyMennyiseg -= bankAranyMennyiseg));
   

    float hitelFelvevo = 0;
    float hitel = 10;
    float kamat = (hitel / 100) * 10;
    int futamido = 20;
    float haviTorleszto = (hitel / futamido) + (kamat / futamido);

    hitelFelvevo = hitel;
    System.out.println("Hitel a hitelfelvevőnek,

                            a banki aranymennyiség emiatt: " + (bankAranyMennyiseg -= hitel));
    System.out.println("A hitel teljes kamatmértéke: " + kamat + " (" + (kamat * 10) + " %)");
    System.out.println("1 havi törlesztő részlet: " + haviTorleszto);

    for(int honap = 1; honap <= futamido; honap++){
        bankAranyMennyiseg += haviTorleszto;
    System.out.println("A bank " + honap + ". havi aranymennyiségének növekedése: "

                                + bankAranyMennyiseg);
    }
    System.out.println("\nA bank teljes aranymennyiségének növekedése: "

                                + (bankAranyMennyiseg - bankAranyMennyisegKezdetben));
    }
}

 

Végeredmény:

Kezdetben a forgalomban lévő teljes aranymennyiség: 100000.0
Kezdetben a bank megszerzi a forgalomban lévő teljes aranymennyiség 1/100 részét: 1000.0
A forgalomban lévő teljes aranymennyiség emiatt: 99000.0
Hitel a hitelfelvevőnek, a banki aranymennyiség emiatt: 990.0
A hitel teljes kamatmértéke: 1.0 (10.0 %)
1 havi törlesztő részlet: 0.55
A bank 1. havi aranymennyiségének növekedése: 990.55
A bank 2. havi aranymennyiségének növekedése: 991.1
A bank 3. havi aranymennyiségének növekedése: 991.64996
A bank 4. havi aranymennyiségének növekedése: 992.19995
A bank 5. havi aranymennyiségének növekedése: 992.74994
A bank 6. havi aranymennyiségének növekedése: 993.2999
A bank 7. havi aranymennyiségének növekedése: 993.8499
A bank 8. havi aranymennyiségének növekedése: 994.3999
A bank 9. havi aranymennyiségének növekedése: 994.9499
A bank 10. havi aranymennyiségének növekedése: 995.4999
A bank 11. havi aranymennyiségének növekedése: 996.04987
A bank 12. havi aranymennyiségének növekedése: 996.59985
A bank 13. havi aranymennyiségének növekedése: 997.14984
A bank 14. havi aranymennyiségének növekedése: 997.6998
A bank 15. havi aranymennyiségének növekedése: 998.2498
A bank 16. havi aranymennyiségének növekedése: 998.7998
A bank 17. havi aranymennyiségének növekedése: 999.3498
A bank 18. havi aranymennyiségének növekedése: 999.8998
A bank 19. havi aranymennyiségének növekedése: 1000.44977
A bank 20. havi aranymennyiségének növekedése: 1000.99976

A bank teljes aranymennyiségének növekedése: 0.99975586

 

Éppúgy a kamat mértékének változása sem (alább 50%-os kamat 10 hónapra):

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args){
    float teljesAranyMennyiseg = 100000;
    System.out.println("Kezdetben a forgalomban lévő teljes aranymennyiség: " + teljesAranyMennyiseg);
    float bankAranyMennyiseg = teljesAranyMennyiseg / 100;
    System.out.println("Kezdetben a bank megszerzi a forgalomban lévő

                            teljes aranymennyiség 1/100 részét: " + bankAranyMennyiseg);
    float bankAranyMennyisegKezdetben = bankAranyMennyiseg;
    System.out.println("A forgalomban lévő teljes aranymennyiség emiatt:

                            " + (teljesAranyMennyiseg -= bankAranyMennyiseg));
   

    float hitelFelvevo = 0;
    float hitel = 10;
    float kamat = (hitel / 100) * 50;
    int futamido = 10;
    float haviTorleszto = (hitel / futamido) + (kamat / futamido);

    hitelFelvevo = hitel;
    System.out.println("Hitel a hitelfelvevőnek,

                            a banki aranymennyiség emiatt: " + (bankAranyMennyiseg -= hitel));
    System.out.println("A hitel teljes kamatmértéke: " + kamat + " (" + (kamat * 10) + " %)");
    System.out.println("1 havi törlesztő részlet: " + haviTorleszto);

    for(int honap = 1; honap <= futamido; honap++){
        bankAranyMennyiseg += haviTorleszto;
    System.out.println("A bank " + honap + ". havi aranymennyiségének növekedése: "

                                + bankAranyMennyiseg);
    }
    System.out.println("\nA bank teljes aranymennyiségének növekedése: "

                                + (bankAranyMennyiseg - bankAranyMennyisegKezdetben));
    }
}

 

Végeredmény:

Kezdetben a forgalomban lévő teljes aranymennyiség: 100000.0
Kezdetben a bank megszerzi a forgalomban lévő teljes aranymennyiség 1/100 részét: 1000.0
A forgalomban lévő teljes aranymennyiség emiatt: 99000.0
Hitel a hitelfelvevőnek, a banki aranymennyiség emiatt: 990.0
A hitel teljes kamatmértéke: 5.0 (50.0 %)
1 havi törlesztő részlet: 1.5
A bank 1. havi aranymennyiségének növekedése: 991.5
A bank 2. havi aranymennyiségének növekedése: 993.0
A bank 3. havi aranymennyiségének növekedése: 994.5
A bank 4. havi aranymennyiségének növekedése: 996.0
A bank 5. havi aranymennyiségének növekedése: 997.5
A bank 6. havi aranymennyiségének növekedése: 999.0
A bank 7. havi aranymennyiségének növekedése: 1000.5
A bank 8. havi aranymennyiségének növekedése: 1002.0
A bank 9. havi aranymennyiségének növekedése: 1003.5
A bank 10. havi aranymennyiségének növekedése: 1005.0

A bank teljes aranymennyiségének növekedése: 5.0

 

A fenti kód tehát jól "belőtte" a futamidős hitel kamatainak kiszámítását és a továbbiakban kiválóan felhasználható. Alapkódnak megteszi, bár egy kérdésben tisztességgel pontatlan, vajon miben?

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

Bár kezdetben a hitelfelvevőnek 0 aranya és a hitel megszerzése után pedig 10 aranya van, ám a futamidő végén 10+1 aranyat kell leszurkolnia. A +1 aranyat nem fogja tudni kifizetni, ha nincs egyéb bevétele vagy nem lop. A kód tehát nem foglalkozik a legfontosabbal: a hitelfelvevő jövedelmével.

 

Honnan szerzi a hitelfelvevő a jövedelmét?

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

Amikor azt mondjuk, hogy a fizetését vagy bevételeit X. személytől vagy Y. cégtől kapja, akkor az közvetetten a forgalomban lévő teljes aranymennyiségből származik. Mert a forgalomban lévő teljes aranymennyiség nem egy, a Központi Bankban tárolt aranykupac, hanem az emberek zsebében és a cégek széfjeiben tárolt, illetve az éppen forgalomban lévő arany összessége.

 

A kódba tehát implementálnunk kell a hitelfelvevő a jövedelmét, még pedig egyetlen helyről: a forgalomban lévő teljes aranymennyiségből. Az arany körforgásának ciklikus egyensúlya ebben a pillanatban borul fel, hiszen a bank konzerválja, azaz jó mélyen széfjébe süllyeszti szerzett kamatjövedelmét. Illetve újra kihelyezheti hitel formájában, ami még több kamatbevételt szül, ezáltal gyorsítva fel a folyamatot. A bank egyetlen módon tudná helyreállítani az egyensúlyt: ha önként lemondana a kamatjövedelem bizonyos mennyiségéről és visszajuttatná a forgalomban lévő teljes aranymennyiség vérkeringésébe. No de miért tenné ezt önként? Mondjon le törvényes bevételeiről a közjó javára?

 

A probléma mélyebb vizsgálatához bele kell gondolnunk a bank gazdaságban betöltött szerepébe. Bár megtakarítása minden szorgalmas embernek van, ami szintén (kis mértékű) értékelvonást okoz a forgalomban lévő teljes aranymennyiségből, ám a bank szinte egyedüli, dedikált feladata az aranykölcsönzés, még pedig kamatra, tágabb értelemben a kamatszedés. Egyébként alapjában véve tehetné ezt önzetlenül is (efféle próbálkozások már szerte a világon vannak vagy állami szabályozással vagy "szegények bankja" típusú magánkezdeményezés formájában), ám a legtöbb banknak természetesen nincsenek mélyebb erkölcsi megfontolásaik, bár azt is megjegyzem, hogy mindezt nem tudnák véghezvinni jogszabályi környezettel támogatott állami asszisztencia nélkül.

 

Az alábbi futtatható Java-kódban tehát implementálnunk kell a hitelfelvevő jövedelmét, legyen mondjuk ez havi 2 arany. Ez közvetetten a forgalomban lévő teljes aranymennyiségből származik és ennek adott mennyiségű részlete kamat formájában a bank teljes aranymennyiségébe vándorol át. Ekkor tehát a 2 arany havi jövedelemből (10 hónap, 10%-os kamat esetében) 1.1 arany áramlik vissza bankhoz, ez 51%-os jövedelemelvonás. Ennek mértéke egyébként mai modern fizetési és hitelkonstrukciókat nézve átlagosnak mondható.

 

A hitelfelvevő a maradék havi 0.9 aranyat sem tarthatja meg, hiszen fenn kell tartania magát és családját: annak nagyobb része, mondjuk 0.8 százaléka visszaáramlik a forgalomban lévő teljes aranymennyiségbe kenyér-, és kolbászvásárlás formájában. De azért tételezzük fel, hogy havi 0.1 aranyat mégis képes megtakarítani.

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

No de előbb-utóbb hová teszi megtakarításait? Nyilvánvalóan a bankba! Ekkor a havi 0.1 arany a bank tőkéjét (bankAranyMennyiseg) fogja növelni, amelynek segítségével a bank tovább növelheti hitelkihelyezéseit.

 

Nyilvánvaló, hogy a banknak a megtakarítások miatt a betétesek felé kamatot kell fizetnie. Ám az is jól látható, hogy a megtakarítások kamatmértékének mindenképpen kevesebbnek kell lennie az általános kamatmértéknél (alább itt 10%), másként a banknak nem érné meg a megtakarítások kezelése. Ezt a momentumot már nem implementáljuk, így a futamidő for ciklusába a fentiek alapján a következő egyszerű értékátrendezés kerül:

 

for(int honap = 1; honap <= futamido; honap++){
    bankAranyMennyiseg += haviTorleszto;
    teljesAranyMennyiseg -= 2;
    hitelFelvevo += 2;
    teljesAranyMennyiseg += 0.8;
    bankAranyMennyiseg += 0.1;
}
 

Nézzük meg a futtatható Java-kódot:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args){
float teljesAranyMennyiseg = 100000;
System.out.println("Kezdetben a forgalomban lévő teljes aranymennyiség: " + teljesAranyMennyiseg);
float bankAranyMennyiseg = teljesAranyMennyiseg / 100;
System.out.println("Kezdetben a bank megszerzi a forgalomban lévő teljes aranymennyiség 1/100 részét: " + bankAranyMennyiseg);
float bankAranyMennyisegKezdetben = bankAranyMennyiseg;
System.out.println("A forgalomban lévő teljes aranymennyiség emiatt: " + (teljesAranyMennyiseg -= bankAranyMennyiseg));

float hitelFelvevo = 0;
float hitel = 10;
float kamat = (hitel / 100) * 10;
int futamido = 10;
float haviTorleszto = (hitel / futamido) + (kamat / futamido);

hitelFelvevo = hitel;
System.out.println("Hitel a hitelfelvevőnek, a banki aranymennyiség emiatt: " + (bankAranyMennyiseg -= hitel));
System.out.println("A hitel teljes kamatmértéke: " + kamat + " (" + (kamat * 10) + " %)");
System.out.println("1 havi törlesztő részlet: " + haviTorleszto);

for(int honap = 1; honap <= futamido; honap++){
bankAranyMennyiseg += haviTorleszto;
teljesAranyMennyiseg -= 2;
hitelFelvevo += 2;
teljesAranyMennyiseg += 0.8;
bankAranyMennyiseg += 0.1;
}
System.out.println("\nA bank teljes aranymennyiségének növekedése: "
+ (bankAranyMennyiseg - bankAranyMennyisegKezdetben));
System.out.println("A forgalomban lévő teljes aranymennyiség változása: " + (teljesAranyMennyiseg -= bankAranyMennyiseg));
}
}

 

Végeredmény:

Kezdetben a forgalomban lévő teljes aranymennyiség: 100000.0
Kezdetben a bank megszerzi a forgalomban lévő teljes aranymennyiség 1/100 részét: 1000.0
A forgalomban lévő teljes aranymennyiség emiatt: 99000.0
Hitel a hitelfelvevőnek, a banki aranymennyiség emiatt: 990.0
A hitel teljes kamatmértéke: 1.0 (10.0 %)
1 havi törlesztő részlet: 1.1

A bank teljes aranymennyiségének növekedése: 1.9995117
A forgalomban lévő teljes aranymennyiség változása: 97985.97

 

A várható eredmények jól láthatók az összesítésben: a bank teljes aranymennyiségének növekedése nagyjából 2.

 

A Java-kódok csak 1 személy hitelfelvételét és korlátozott futamidejű hitelvisszafizetését modellezik le. Nem nehéz kitalálnunk, hogy azonos feltételekkel (10 hónap, 10%-os kamat és 10 személy esetében) milyen végeredményt kapnánk:

 

A bank teljes aranymennyiségének növekedése nagyjából 20

 

Ezt a kód mélyebb átírása nélkül úgy tudjuk leellenőrizni, hogy minden, a hitelfelvevőhöz köthető értékváltozást megszorzunk 10-zel, ezek:

 

float hitel = 100;

for(int honap = 1; honap <= futamido; honap++){
    bankAranyMennyiseg += haviTorleszto;
    teljesAranyMennyiseg -= 20;
    hitelFelvevo += 20;
    teljesAranyMennyiseg += 8;
    bankAranyMennyiseg += 1;
}

 

Mivel a bank szinte egyedüli feladata a kamatszedés, közvetlen érdeke a minél több hitel kihelyezése, azaz a minél több adós (minél magasabb kamattal). Ez a tendencia egyébként azóta sem változott. A bonyolult értékátrendeződések miatt nehéz, de nem lehetetlen kitalálnunk, hogy hány adós fogja a forgalomban lévő teljes aranymennyiséget teljesen elszívni. Ezt a képletet most felesleges megalkotnunk, az arányok érzékeléséhez pedig elég annyi, hogy elméletileg nézve, ha a forgalomban lévő teljes aranymennyiség 99000 és a kamat 1 arany, akkor 99000 adós, ennél nagyobb kamatmérték esetén kevesebb.

 

Persze 2 arany átlagos, kifizetett havi jövedelem miatt az aranyforgalomban már jóval előbb likviditási gondok fognak keletkezni. A jövedelem-visszaáramlás pedig (emlékezzünk vissza: ez a kenyér és kolbászvásárlás) a folyamatot ugyan lelassítja, de nem fogja leállítani.

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

Mivel a bank szinte egyedüli feladata a kamatszedés, ezért tökéletesen mindegy hány adósa van és milyen futamidőkkel dolgozik: mindig lesznek adósai és mindig lesznek kihelyezett hitelei, tehát egyúttal kamatbevételei. Ezek a körülmények tökéletesen modellezhetők egy végtelen for ciklussal feltételes break utasítással vagy feltételes do-while ciklussal. A ciklus futásának egyetlen feltétele van: csakis addig tarthat, amíg a forgalomban lévő teljes aranymennyiség el nem fogy.

 

A fenti feltételeket tehát a következőképpen implementáljuk:

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args){
float teljesAranyMennyiseg = 100000;
System.out.println("Kezdetben a forgalomban lévő teljes aranymennyiség: " + teljesAranyMennyiseg);
float bankAranyMennyiseg = teljesAranyMennyiseg / 100;
System.out.println("Kezdetben a bank megszerzi a forgalomban lévő teljes aranymennyiség 1/100 részét: " + bankAranyMennyiseg);
float bankAranyMennyisegKezdetben = bankAranyMennyiseg;
System.out.println("A forgalomban lévő teljes aranymennyiség emiatt: " + (teljesAranyMennyiseg -= bankAranyMennyiseg));

float hitelFelvevo = 0;
float hitel = 10;
float kamat = (hitel / 100) * 10;

hitelFelvevo = hitel;
System.out.println("Hitel a hitelfelvevőnek, a banki aranymennyiség emiatt: " + (bankAranyMennyiseg -= hitel));
System.out.println("A hitel teljes kamatmértéke: " + kamat + " (" + (kamat * 10) + " %)");

for(int honap = 1; ; honap++){
if(teljesAranyMennyiseg < 0){
break;
}
System.out.println(honap + ". lépés: ");
teljesAranyMennyiseg -= 2;
hitelFelvevo += 2;
teljesAranyMennyiseg += 0.8;
bankAranyMennyiseg += kamat;
bankAranyMennyiseg += 0.1;
System.out.println("A bank aranymennyiségének növekedése: " + bankAranyMennyiseg);
System.out.println("A forgalomban lévő teljes aranymennyiség emiatt: " + (teljesAranyMennyiseg) + "\n");
}
}
}

 

Végeredmény (utolsó lépések):

...

82451. lépés:
A bank aranymennyiségének növekedése: 91761.57
A forgalomban lévő teljes aranymennyiség emiatt: 2.019405

82452. lépés:
A bank aranymennyiségének növekedése: 91762.67
A forgalomban lévő teljes aranymennyiség emiatt: 0.8194049

82453. lépés:
A bank aranymennyiségének növekedése: 91763.77
A forgalomban lévő teljes aranymennyiség emiatt: -0.38059515

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

A végeredmények nem teljesen pontosak részben a kerekítési pontatlanságok, részben az értékmegadások nem teljes modellezése miatt, ám az aranyforgalom egyensúlya lényegében nem ezzel, hanem a kamat elsüllyesztésével borul fel, hiszen míg a jövedelmek jelentős hányada visszaáramlik a teljes aranyforgalomba, a kamatok szavatoltan nem fognak.

 

Az egyetlen fontos szempont a fenti Java-kódok által modellezett körülményekben, hogy a rendszer NEM egyensúlyi helyzetet teremt, amely külső, például állami beavatkozások nélkül nem orvosolható.

 

Nézzük meg a fenti implementációt feltételes do-while ciklus felhasználásával is:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args){
float teljesAranyMennyiseg = 100000;
System.out.println("Kezdetben a forgalomban lévő teljes aranymennyiség: " + teljesAranyMennyiseg);
float bankAranyMennyiseg = teljesAranyMennyiseg / 100;
System.out.println("Kezdetben a bank megszerzi a forgalomban lévő teljes aranymennyiség 1/100 részét: " + bankAranyMennyiseg);
float bankAranyMennyisegKezdetben = bankAranyMennyiseg;
System.out.println("A forgalomban lévő teljes aranymennyiség emiatt: " + (teljesAranyMennyiseg -= bankAranyMennyiseg));

float hitelFelvevo = 0;
float hitel = 10;
float kamat = (hitel / 100) * 10;

hitelFelvevo = hitel;
System.out.println("Hitel a hitelfelvevőnek, a banki aranymennyiség emiatt: " + (bankAranyMennyiseg -= hitel));
System.out.println("A hitel teljes kamatmértéke: " + kamat + " (" + (kamat * 10) + " %)");
int honap = 1;


do{
System.out.println(honap + ". lépés: ");
teljesAranyMennyiseg -= 2;
hitelFelvevo += 2;
teljesAranyMennyiseg += 0.8;
bankAranyMennyiseg += kamat;
bankAranyMennyiseg += 0.1;
System.out.println("A bank aranymennyiségének növekedése: " + bankAranyMennyiseg);
System.out.println("A forgalomban lévő teljes aranymennyiség emiatt: " + (teljesAranyMennyiseg) + "\n");
honap++;
}while(teljesAranyMennyiseg > 0);
}
}

 

Végeredmény (utolsó lépések):

...

82451. lépés:
A bank aranymennyiségének növekedése: 91761.57
A forgalomban lévő teljes aranymennyiség emiatt: 2.019405

82452. lépés:
A bank aranymennyiségének növekedése: 91762.67
A forgalomban lévő teljes aranymennyiség emiatt: 0.8194049

82453. lépés:
A bank aranymennyiségének növekedése: 91763.77
A forgalomban lévő teljes aranymennyiség emiatt: -0.38059515

 

A lépésszámláló felvet egy költői kérdést: lehet-e a banknak 82453 adósa? Hát persze, ebben az esetben tehát a forgalomban lévő teljes aranymennyiség nagyjából 1 hónap alatt le is merül, (nem számítva a kötelező kifizetéseket, amelyek miatt az jóval hamarabb fog bekövetkezni). Fontos azt is észrevennünk, hogy az egyensúlyt nem lehetséges semmilyen úton helyreállítani. Nem ad megoldást sem a be-, és kifizetések közti időrés, sem kamatadó kivetése, csakis:

A fenti elmélkedés bár fikció, de valós eseményeket modellez. Aki ebben kételkedik, az soha nem tanult közgazdaságtant, például Adam Smith láthatatlan kéz elméletét. Ez az elmélet nem kevésbé ködös, azaz idealizált, ám alapjában véve mégis működőképes.

 

A következő fejezetben kitörünk a sötét középkorból és megnézzük, hogy a felvilágosult Nyugat milyen pénzügyi mechanizmusokat talált fel a kapitalizmus fellendítése érdekében.