利率与收益

来源:互联网 发布:淘宝九块九包邮专区 编辑:程序博客网 时间:2024/04/27 19:51
钱存在银行,是继续按照当前的利率方式存储,还是取出来,按照另一种方式继续储蓄,能得到最大的收益呢?很明显,这里涉及到运算。
        以招商银行(比四大行的利率高)为例:
                储蓄时间(月)                    利率/月
                1(活)                                0.00385/12
                3(定)                                0.0286/4
                6(定)                                0.0308/2
                12(定)                              0.033
                24(定)                              0.0375 * 2
                36(定)                              0.0425 * 3
                60(定)                              0.0475 * 5
        那么,倘若你计划存x元钱,计划将其放入银行的时间是n个月,得到的最大收益为:f(x, n);
        储蓄收益f(x,n)=k*x,(k为大于1的实数),即f(x,n)在n一定的情况下,是一个关于x的线性函数。
        所以对于f(x,n)有:
                (1)f(x1+x2, n) = f(x1, n) + f(x2, n);
        那么在储蓄时,将100块掰成两半50+50,存相同的时间的做法,并不能得到更高的收益。尽管你为此付出了更多的精力和时间。
        如果f(x, n-1)是x元,按照某种方案存放n-1个月时得到的最大收益,那么f(x, n) = f{f(x, n-1), 1}。很明显,这是递归!
        当储蓄时间n>=3,而小于6时。比如存放时间是4个月,由于4个月时间里,你可以自由选择的利率有两种,按照怎样的方式能得到最大,就有必要进行比较。
                f(x, n) = MAX{f[f(x, n-1), 1], f(x, n-3) * (1 + 0.0286/4)}
        当储蓄时间n>=6,而小于12是。自由选择的利率变成了三种:
                f(x, n) = MAX{f[f(x, n-1), 1], f[f(x, n-3), 3], f(x, n-6) * (1 + 0.0308/2)}
                ...
        可以看出这个递归式有一个有趣的形式:
                (2)f(x, n) = MAX{f[f(x, n-m), month[m]]},(m的范围是0~6, month[] = {1, 3, 6, 12, 24, 36, 60]);
        而递归的终点:
                f(x, 0) = x;
                f(x, 1) = x * (1 + 0.00385/12);
                ...
        以(1)为已知,按照(2)编写算法,就可一求出将x元存入银行n个月的最大收益,如果想要得到储蓄方案,即分成几个阶段,各个阶段按照哪种利率存储,则需要在算法实现过程中进行记录。
        众所周知,递归算法会反复的运算曾经运算出来过的结果,使用动态规划,将结果保存在一维数组里面gain[MAX],gain[i]表示第i个月的最大收益。
        从第1个月计算起,后面的月份的最大收益使用前面计算的结果,减少重复计算。 

// ----------------------------------------------------------------------------------------------------运算结果
5000块存23个月
图片
5000块存66个月
图片
5000块存22个月
图片
// ------------------------------------------------------------------------------------------------------- 代码不贴了 
ps:所有计算都是基于一个基础:银行汇率固定不变。似乎,这个前提相当不受控!所以,不要把运算结果当真。
0 0
原创粉丝点击