我的世界pc:高级算法问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/07 04:58:57
互赠糖果。甲、乙、丙三人上街买糖果。三人都买好后,甲对乙、丙说,我可以按你们现有的糖果数再送给你们每人一份。甲送给乙、丙后,乙也按甲、丙现有的糖果数,送给甲、丙各一份糖果。丙也如此送了甲、乙各一份。互相赠送后,每人恰好各有64颗糖果。
用VB编不我会!
用VB编码编呀

这个问题的难点在于建立三元一次方程组,其过程如下:

假设开始时甲、乙、丙有糖果数分别是a,b,c

甲送给乙、丙糖果后,三人拥有的糖果数分别为:
甲:a-b-c、乙:2b、丙:2c

乙送给甲、丙糖果后,三人拥有的糖果数分别为:
甲:2a-2b-2c、乙:3b-a-c、丙:4c

丙送给甲、乙糖果后,三人拥有的糖果数分别为:
甲:4a-4b-4c、乙:6b-2a-2c、丙:7c-a-b

根据题意有:
4a-4b-4c=64
6b-2a-2c=64
7c-a-b=64

用高斯消元法,可解得
a=104
b=56
c=32

所以在设计程序时,可以用一个[3,3]的数组存储各个方程的系数,用一个[3]的数组存储各方程右侧的值,即{64,64,64}

该题的算法可以参考《线性代数》自己设计,《数值分析》上也有高斯消元法的完整算法。

祝你好运!