场景:
借款人向借贷公司借款元,按照等本等息(这种方式好说明些)的方式还12期,每期还本金
元。
对于一笔借贷来说,投资人会存在多个,假设为个,他们投资的总额等于
元。
现在借款人开始还款,要求以下3点:
(1)返还给投资人的本金需要按比例分配,当时投资多,则本次还款到此投资人的本金就大;
(2)供应商每一期还的本金刚好等于给投资人的本金;
(3)投资人的本金进过12期还款之后,剩余的待还款本金为0;
问题分析:
(1)如果按照等比例返回给投资人,一定会遇见不能整除的问题,例如借款人借款1200元,三人各投资400元,有,借款人第一期还100元给3位投资人,每个投资人是均分不了的;
先给出如下的表格:
期数用户 | 用户1 | 用户2 | 用户3 | 总和 |
---|---|---|---|---|
期数1 | 33.33 | 33.33 | 33.33 | 99.99 |
期数2 | 33.33 | 33.33 | 33.33 | 99.99 |
... | ... | ... | ... | ... |
期数12 | 33.33 | 33.33 | 33.33 | 99.99 |
总和 | 399.96 | 399.96 | 399.96 | 1199.88 |
通过这个表格,横(投资人回款总额)竖(借款人还款总额)都和总数有偏差。
如果是严格的按照比例回款给投资人,显然在这个情况下是不可能的,我们放松这个条件,修改为投资人的汇款金额大致按照比例,自然越趋近越好。
投资人有有先后的顺序,还是按照这个例子来走,用户1在第一期的时候,实际上是,如果保留8位小数,且最后一位直接进位,得到
,则用户1第一期回款金额为33.33元,同理得到用户2第一期为
,但是,此时将用户1的
加上得
元,故用户2第一期回款本金为33.33,同理用户3第一期为
,加上
,得到
,即
元。
期数用户 | 用户1 | 用户2 | 用户3 | 总和 |
---|---|---|---|---|
期数1 | 100 | |||
期数2 | 100 | |||
... | ... | ... | ... | ... |
期数12 | 100 | |||
总和 | 399.96 | 399.96 | 400.08 | 1200 |
现在借款人的本金每期100元都完全分给了投资人,满足条件2,但是条件3不满足。我们将每个用户的最后一期 = 总本金 - 减去以前期数的总和来求得:
期数用户 | 用户1 | 用户2 | 用户3 | 总和 |
---|---|---|---|---|
期数1 | 100 | |||
期数2 | 100 | |||
... | ... | ... | ... | ... |
期数12 | 100 | |||
总和 | 400 | 400 | 400 | 1200 |
至此,比较完美的解决了这个问题,但是还是需要证明以下2点:
(1) 横行,最后的总和一定等于100;
(2) 竖行,最后一期不会因为前面几期多回款本金导致减成了负数;
第一个比较好解答,由于每一个用户的每一期都是分位直接进位的,所以到最后一个肯定是超过100%,但是也不会超过多少,保留八位小数可以保证百万级别的拆分;
第二个问题,到第11期时,借款人剩余该还本金为,假设用户3每次都回款多1分钱,到第11期剩余的本金为
,则用户3第11期回款本金为:
证明:
即可。
如果此时发生前面累积小数 + 本次小数 > 1的情况,本次也不会减成负数。
ps:还有另外一种解决方案,暂且不表。