主题:多干少拿是中国经济捷径吗?gcc296网友程序中的错 -- 地的得
前几日gcc296网友建模编程,发现了一个有趣的结论,引用gcc296网友的原话,即:
gcc296贴的链接为,我写了一个小程序,发现结论是相反的
gcc296网友提了四种策略,
1. A和B之间可以互相无限制的投资
2. 只能A向B投资,且投资额不超过A资金的20%
3. 只能A向B投资,且投资额不超过B资金的20%
4. A和B之间不能互相投资
gcc296网友模拟了50年A,B两国财富的变化,并画了三张图。第三张图清楚地显示了前面提到的那个有趣结论。具体讲即为,开始B国只有A国百分之一的财富,但B年经济增长率是10%,A年经济增长率是1%。B采用第一种策略,让A无限制的投资B,B只得A投资收益的零头,5%,A得投资收益的大头,95%,50年后B国有A国12倍的财富。很让人惊讶的结论。强烈建议大家看gcc296网友的原贴,非常简节流畅,至此我只是重复他贴中的内容。而且gcc296网友的原贴最后给出了源代码的链接。
我此贴的主要目的是要指出那个让人惊讶的结论实际源自gcc296网友程序中的一个关键错误。先截取程序中一个含错的子程序,
def simulation(strategy, years):
A_capital = A_initial_capital
B_capital = B_initial_capital
for i in range(years):
AA, AB, BA, BB = strategy(A_capital, B_capital)
A_capital = AA * (1.0 + A_rate) \
+ AB * (1.0 + B_rate) * (1 - tax_rate) \
+ BA * (1.0 + A_rate) * tax_rate
B_capital = BB * (1.0 + B_rate) \
+ BA * (1.0 + A_rate) * (1 - tax_rate) \
+ AB * (1.0 + B_rate) * tax_rate
yield i, A_capital, B_capital
A_capital 计算公式的第2项有错。AB 是A在B的投资,投资收益为AB * B_rate,A得投资收益中的大头,AB * B_rate *(1-tax_rate), 此处 tax_rate=0.05,是B在投资收益中得到的零头份额。所以第2项应为
AB + AB * B_rate * (1 - tax_rate)
比原公式中的第2项多 AB * tax_rate, 即B不仅得到了投资收益的0.05,还得到了投资本金的0.05。这绝不是零头,因为投资收益只是投资本金的B_rate =10%。这样B 实际得到了投资收益的0.55。这种错误也影响到A_capital 计算公式的第3项,以及B_capital 计算公式的第2,3项。类似错误还存在于另外俩个小子程序,AB_profitable() 和 BA_profitable()。
更正了这个错误后,我重新运行了gcc296网友的程序,并重画了那3张图(贴在文后)。对比第3张图中的红线与紫线发现结论与gcc296网友的结论不一至,在50年左右的尺度看两种结论是相反的。(提醒,我的的第3张图线画到55年,因为50年的时候,绿蓝紫3线还有交织。
现在随便说几点,
1) 所有的线都上扬,是因为模型中A,B 的投资都有收益,不过gcc296网友的线上扬太快。
2) 模型中的tax_rate 决定投资收益的分配,多得肯定比少得好。
3) 模型中的tax_rate =0。05 不知准不准,要考量环境与资源因素。
4) 可根据情况换策略。我的第三张图中的红线开始还是最高,说明太穷时还是需要外资。随情况变化应调整对外资优惠,至少可以对不同行业,不同来源外资具体分析调整。最好能分化不同外企,不同国家,拉一打一。
5) 对外不能一味让利,要想合作对外资也有很多好处,合作不成,外资也不合算。
本帖一共被 1 帖 引用 (帖内工具实现)
- 相关回复 上下关系5
🙂多干少拿是中国经济捷径吗?gcc296网友程序中的错
🙂公式错了咯,一看标题我吓了跳 1 百年 字55 2012-05-29 13:01:45
🙂这个数学模型太过于静态 3 金口玉言 字1235 2012-05-02 07:25:43
🙂如果不止只有A和B两个国家呢? PBS 字21 2012-05-02 03:49:52
🙂简化成“中国和外国”好了 达雅 字83 2012-05-02 11:05:11