退休时每月能领多少钱?——养老金计算程序
来源:互联网 发布:java float 判断相等 编辑:程序博客网 时间:2024/03/29 23:18
转载请保留此信息:http://blog.csdn.net/jmppok/article/details/17303243
1.养老金问题
最近养老金很火:什么?养老金不够用了,要延迟退休!
大家每个月都要缴纳一大笔养老保险金,个人+单位可能有几千块。我不禁会想:现在每个月缴这么多钱,以后等我退休了,一个月能能拿到多少呢?
当然这个问题目前还是个谜。说到底到时候可能还是国家说了算,给你发多少就是多少。
可是最为一个吊丝程序员,对该问题却十分关注。下面试图通过一个小程序来模拟算一下,一个中国人一生需要缴纳多少养老金,以及退休后,每个月能领到多少钱?
2.几个重要的设定
1)每个人缴纳数是随工资增长的,但是也有一个高限(上一年本市平均工资的3倍的28%),当然平均工资也是会随年增长的。
设定一:我以GDP的增长速度来代替平均工资的增长速度,并且设定为7%。
2)大家都知道养老金是退休了以后才能领取的,没退休之前,钱是存在银行的,而这时候是要算利息的。
设定二:取目前5年期的定存利率作为计算利率, 目前为4.75%
3.能领多少钱?
1)假设25岁工作,工作时工资为8000元,每个月个人+单位缴养老金1920元。60岁退休,90岁Over,领30年养老金。则情况如下:
到时每月领取46358元。
2)如果延迟至65岁退休,则情况如下:
到时每月领取79972元。(多缴了5年,少领了5年)
3)比如我是工作4年,今年30,现在缴4200左右,估计到时候65退休。情况如下:
到时每月领108936元。好多阿....
4.先不要太开心,退休时,30年过去了,那时候的物价...
假设GDP增速7%,CPI增速3%
30年后,10000元增长17倍,退休的时候每月拿10W元,才相当于现在的6000元。
5.实现代码
Python2.7
1)养老金计算代码,c1.py
#!/usr/bin/python# -*- coding: utf-8 -*-import sys#月缴纳金额(个人+单位)Money_now = 0#退休后月领取金额Money_retire = 0#参加工作年龄,预定义为22Age_work = 25#现在年龄(输入)Age_now = 0#退休年龄,预定义为60Age_retire = 65#死亡年龄,预定义为90Age_die = 90#银行利息,用于计算养老金利息Bank_rate=0.0475#GDP增长,用于计算每月养老金的增加金额GDP_rate=0.07#计算分为两步:#1.计算总缴纳,包括以前缴的和以后缴的,每年计息;#2.计算月领取数,领取时余额每年计息;def calc(age,money):Age_now=int(age)Money_now=int(money)Y_before= Age_now-Age_workY_total = Age_retire - Age_workM_first = Money_now*(1-GDP_rate)**Y_beforeR_gdp = 1+GDP_rate;R_bank = 1+Bank_rate;#计算总缴纳额# Y_total-1#SUM=∑(M_first*12*(R_gdp)**k)*(R_bank)**(Y_total-k) # k=0#即# Y_total-1#SUM=∑(12*M_first*(R_bank)**Y_total)*(R_gdp/R_bank)**(k) # k=0#使用等比数列求和 Sn=a1(1-q^n)/(1-q)q=R_gdp/R_bankSUM=12*M_first*((R_bank)**(Y_total))*(1-q**Y_total)/(1-q)print Age_work,"参加工作,",Age_retire,"退休","退休时有养老金",SUM#下面计算领取Y_draw=Age_die-Age_retire# 假设刚好领完,每年计息# Y_draw-1# ∑(SUM-Money_retire*12*k)*(R_bank)**(Y_draw-k)=12*Money_retire*Y_draw # k=0#Y=12Money_retire#M=(R^(n+1)-(n+1)R+n)/(R^n*(R-1)^2) #Y=(S*(R^N-1))/((R-1)*(R^n*M+N))M=(R_bank**(Y_draw+1)-(Y_draw+1)*R_bank+Y_draw)/(R_bank**Y_draw * (R_bank-1)**2)Y=(SUM*(R_bank**Y_draw-1))/((R_bank-1)*(R_bank**Y_draw*M+Y_draw))Money_retire = Y/12print Age_die,"死亡,领取",Y_draw,"年,每月",Money_retireif __name__=='__main__':if(len(sys.argv)<3):print "Usage: c.py age money"else:calc(sys.argv[1],sys.argv[2])
代码分析:主要是两个数学计算公式。
a.缴费计算
# Y_total-1#SUM=∑(M_first*12*(R_gdp)**k)*(R_bank)**(Y_total-k) # k=0b.领取计算
# Y_draw-1# ∑(SUM-Money_retire*12*k)*(R_bank)**(Y_draw-k)=12*Money_retire*Y_draw # k=0
2)物价上涨计算代码
#!/usr/bin/python# -*- coding: utf-8 -*-GDP_rate=0.07CPI_rate=0.03i=5while(i<65):print "10000, ",i," Years late : ",10000*(1+GDP_rate+CPI_rate)**ii+=5
欢迎大家批评指正!
6.总结
少年们,考公务员吧!
- 退休时每月能领多少钱?——养老金计算程序
- 退休后能拿到多少养老金
- 缴满15年能领多少钱 养老金计算公式网上疯传
- 算算退休后能拿多少钱?
- 医院门诊收费系统——能值多少钱?
- 小强出品———每月天数计算。
- 2015年养老金如何计算?养老金怎么计算
- 全国养老金亏空8000亿 引发“延迟退休”呼声。
- 70后20年退休后可以领到多少养老金
- 两种方法分析每月工作日计算程序
- 增加缴费就能弥补养老金缺口?
- 我国将实行“渐进式延迟退休”!退休后的养老金还会涨吗?
- 你能挣多少钱——全国各大公司最新薪资行情
- 多少钱也不能卖我的命——蒋涛 PK Leo实录(4)
- 多少钱也不能买我的命——Leo谈酷6程序员猝死
- 多少钱也不能买我的命——Leo谈酷6程序员猝死
- 网络工程师能赚多少钱???
- 数据库建表存储养老金计算公式
- 进程与内存4-mmap实现1(nopage方法原理及实例)
- 装饰模式(Decorator)(包装器模式(Wrapper))
- Pro Android学习笔记(六五):安全和权限(2):权限和自定义权限
- iOS应用开发攻略 pdf电子书
- centos 6.2 安装mplayer
- 退休时每月能领多少钱?——养老金计算程序
- 那些炒作过度的技术和概念
- iPhone开发实战 pdf电子书
- distro packages dependency tree
- 用tracepath分析网络延迟
- Linux下定义Windows常用数据类型
- ZOJ-1051
- 指针应用
- c++ 标准库的各种容器(vector,deque,map,set,unordered_map,unordered_set,list)的性能考虑