循环引用求解鸡兔同笼,礼物选购方案!

你好,我是刘卓。欢迎来到我的公号,excel函数解析。受群友的启发,让我学到了循环引用求解鸡兔同笼的方法,今天就来分享下这个方法。顺便再分享循环引用的另一个案例——礼物选购方案。
-01-

鸡兔同笼

题目如下图所示:鸡兔同笼,共有35颗头,94只脚。问鸡兔各几只?常规的方法就是设未知数解方程。设鸡有X只,兔有Y只,则有X+Y=35,2X+4Y=94。解得X=23,Y=12。

今天来看下用循环引用如何求解,首先在excel选项中启用迭代计算,设置最多迭代次数为100。

然后在【开发工具】中插入【复选框】,在B3单元格画一个“复选框”,改名为开关。设置链接单元格为A3。这样启动开关就设置好了。

在B5单元格输入公式=IF(A3,IF(B5+B6=35,B5,B5+1),0)。

在B6单元格输入公式=IF(A3,(94-B5*2)/4,0)。

启用开关后,即可执行迭代计算,求得结果。如下图所示。

这种方法其实用的是枚举法,也就是一个一个去试。最开始鸡兔个数都为0,它们相加肯定不等于35,那么鸡的个数就加1,然后通过鸡的个数算出兔的个数,这样一次迭代就完成了。

下一次迭代,再把鸡兔个数相加,看是否等于35,不等于的话,鸡的个数再加1,然后再通过鸡的个数算出兔的个数,……,这样不断迭代,直到鸡兔个数加起来等于35为止,这样它们的个数就不变了。

除了这种方法,之前也分享过用矩阵求解多元一次方程组的方法。感兴趣的小伙伴可以复习《纳尼!用函数解方程的原理原来是这样的。》这篇文章。


-02-

礼物选购方案

如下图所示,A列有10种礼物,B列是它们的单价。现在的要求是让你从这些礼物中挑选出几个,使他们的总金额等于25。注意:每种礼物只能选一个或者不选。这里我用1代表选,0代表不选。

当勾选开关时,自动会选出方案。当你多点几次开关,它下次可能会选出其他的方案。是不是还挺有趣的?
下面来分享一下它的做法,首先在excel选项中启用迭代计算,并设置最多迭代次数为500或更多。
然后在【开发工具】中插入【复选框】,在B14单元格画一个“复选框”,改名为开关。设置链接单元格为A14。这样启动开关就设置好了。
在C17单元格输入下面的公式,向下填充。

=IF(A$14,IF(SUMPRODUCT(B$17:B$26,C$17:C$26)=25,C17,RANDBETWEEN(0,1)),"")

这里有个问题就是,当你勾选开关后得到的结果不一定是对的,这时你可以按一下F9,按完后如果结果不变,说明是对的;如果结果变了,说明是错的,那么需要你把最多迭代次数改为更大的值1000或5000等。

文件链接:

https://pan.baidu.com/s/1SUpsCKiDwqQMakGhJ5GCgg

提取码:49va
(0)

相关推荐