- 注册时间
- 2007-12-26
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 92725
- 在线时间
- 小时
|
楼主 |
发表于 2008-2-22 12:55:17
|
显示全部楼层
原帖由 mathe 于 2008-2-22 10:31 发表
那我亏大了。
有个问题,按照郭老大给出的计算公式,
假设今后定期利率都固定为0.2%,那么我这10元昨天应该存多少天,才能够在1000日之内获得最多的资金。
因为定期利率与存取周期无关,最大收益当然是尽可能利用利滚利了,即存短期,但由于“定期存储天数不得小于30天”,且结算时采用取整模式,所以这个问题比较复杂。
设本金为money,利率为c,存定期天数为fixedDays,
要达到利息 accrual = floor( money*c*fixedDays ),
则 fixedDays = ceil( (accrual/c) / money );
针对上述问题,可采用下述方案:
存50天,到期后可得到:10*(1+50*0.2%)=11 枚金币
再存46天,到期后可得到 12 枚金币
再存42天,到期后可得到 13 枚金币
。。。
按计算器太麻烦了,干脆写段程序:- #include < stdio.h >
- int main(int argc, char* argv[])
- {
- int money = 10;
- int fixedDays0, fixedDays1, fixedDays2;
- int totalDays = 0;
- while ( totalDays <= 1000 )
- {
- // 分两次存,总获利2枚金币
- fixedDays0 = ( 499 + money ) / money;
- fixedDays1 = ( 500 + money ) / ( money + 1 );
- // 一次存,总获利2枚金币
- fixedDays2 = ( 999 + money ) / money;
- if ( fixedDays0 + fixedDays1 < fixedDays2 )
- {
- printf( "money: %d, fixed deposit %d days\n", money, fixedDays0 );
- ++money;
- totalDays += fixedDays0;
- }
- else
- {
- printf( "money: %d, fixed deposit %d days\n", money, fixedDays2 );
- money += 2;
- totalDays += fixedDays2;
- }
- }
- printf( "total days = %d\n", totalDays );
- if ( totalDays > 1000 )
- {
- //...
- }
-
- return 0;
- }
复制代码 运行结果如下:money: 10, fixed deposit 50 days
money: 11, fixed deposit 46 days
money: 12, fixed deposit 42 days
money: 13, fixed deposit 39 days
money: 14, fixed deposit 36 days
money: 15, fixed deposit 34 days
money: 16, fixed deposit 32 days
money: 17, fixed deposit 30 days
money: 18, fixed deposit 28 days
money: 19, fixed deposit 27 days
money: 20, fixed deposit 25 days
money: 21, fixed deposit 24 days
money: 22, fixed deposit 23 days
money: 23, fixed deposit 22 days
money: 24, fixed deposit 21 days
money: 25, fixed deposit 40 days
money: 27, fixed deposit 19 days
money: 28, fixed deposit 36 days
money: 30, fixed deposit 34 days
money: 32, fixed deposit 32 days
money: 34, fixed deposit 30 days
money: 36, fixed deposit 28 days
money: 38, fixed deposit 27 days
money: 40, fixed deposit 25 days
money: 42, fixed deposit 24 days
money: 44, fixed deposit 23 days
money: 46, fixed deposit 22 days
money: 48, fixed deposit 21 days
money: 50, fixed deposit 20 days
money: 52, fixed deposit 20 days
money: 54, fixed deposit 19 days
money: 56, fixed deposit 18 days
money: 58, fixed deposit 18 days
money: 60, fixed deposit 17 days
money: 62, fixed deposit 17 days
money: 64, fixed deposit 16 days
money: 66, fixed deposit 16 days
total days = 1001
Press any key to continue
很不幸,总天数恰好多了一天 不过,10枚金币存1000天可得到65枚是不存在问题的。
不知以上推导是否有问题?欢迎指正。
(另,0.2%为引用 mathe 的假设日利率,并非论坛银行当前设定的利率)
--------------------------------------------
|
|