[Python]資産を毎年n%で取り崩した時の毎年の残高と引出し額を計算
ふと老後のことが気になったので、x万円の資産を毎年x%で取り崩した時の毎年の残高と引出し額がいくらになるのかPythonで書いてみた。
assets = 100000000
rate = 0.05
year = 20
year_list = list(range(1, year + 1))
for year in year_list:
last_year_result_money = assets * (1 - rate)** (year - 1)
this_year_result_money = assets * (1 - rate)**year
this_year_use_money = last_year_result_money - this_year_result_money
print(str(year) + "年目")
print("残金:" + str(this_year_result_money))
print("引出額:" + str(this_year_use_money))
print("========================")
実行するとこんな感じになる。(1億円を毎年5%で20年間引き出し)
1年目
残金:95000000.0
引出額:5000000.0
========================
2年目
残金:90250000.0
引出額:4750000.0
========================
3年目
残金:85737499.99999999
引出額:4512500.000000015
========================
4年目
残金:81450624.99999999
引出額:4286875.0
========================
小数点切り捨ては面倒なのでやってない。
yearに年数を入れて、rangeでリストを作成。5年の場合は、[1, 2, 3, 4, 5]
それをlistで回して、前年度の手残りと本年度の手残りの差分で毎年の引き出し額を求めてる。
ちなみに例として、3年後に5%減少した場合の値は、資産 * (1 – 0.05)^年数 で求めてます。
計算して、気づいたけど終盤になるにつれて毎年引き出せる額がすごく小さくなる。
上記の例だと20年後は188万円くらいしか引き出せないことになる。
なので、もっとリアルな計算式にするとしたら、毎年この位の額は絶対必要という最低ラインを決めておいて、条件式で分岐させて最低額を差し引くコードにしてもいいかも。
そうすると、現実的にx万円はx年後にゼロになるという具体的な計算ができそう。