Office中国论坛/Access中国论坛

标题: 一道小学的鸡兔同笼的题,请大家用VBA算一下 [打印本页]

作者: yanwei82123300    时间: 2016-6-2 13:22
标题: 一道小学的鸡兔同笼的题,请大家用VBA算一下
儿子今天留的一道小学数学题,老师说是鸡兔同笼的题,对于这个概念我辈还是第一次听说,小时候好像叫做如何算腿
一共有20道题,答对一道得5分,不答或答错一题扣3分.得68分,问对了多少道题?问 错了了多少道题?谢谢

作者: amulee    时间: 2016-6-2 13:29
答错一道的得分=答对一道的得分-8

假设20题都答对,满分为100,现得分为68,一共扣了32分,所以答错的题目数量=32/8=4

所以答对了16,答错了4
作者: 盗梦    时间: 2016-6-2 13:33
本帖最后由 盗梦 于 2016-6-2 13:37 编辑

先来个简单的暴力美学:
  1. Dim i as Long, allSroce as Long
  2. for i = 0 to 20 'i 为答对题数
  3.     allSroce = 5*i-3*(20-i)
  4.     if allSroce=68 Then
  5.          debug.print "答对题数:" & i
  6.          exit for
  7.     end if
  8. next
复制代码

作者: tmtony    时间: 2016-6-2 13:36
阿木好快的速度!
作者: 盗梦    时间: 2016-6-2 13:36
再来一个直接的计算:
  1. function calc(sroce as long) as long
  2.     calc = 20-(5*20-sroce)/(5+3)
  3. end function
  4. debug.print calc(68)
复制代码

作者: roych    时间: 2016-6-2 13:43
  1. Function RabitChicken(ByVal lngHeads As Long, ByVal lngFeet As Long) As String
  2.     Dim lngRabits As Long
  3.     Dim lngChickens As Long
  4.    
  5.     lngChickens = (4 * lngHeads - lngFeet) / 2
  6.     lngRabits = lngHeads - lngChickens
  7.     RabitChicken = "兔子:" & lngRabits & "只;鸡:" & lngChickens & "只"
  8. End Function
复制代码
调用结果:
[attach]59233[/attach]鸡兔同笼是小学奥数最常见的一种题型。
如果用二元一次方程求解,其实很简单。然而小学没学过二元一次方程,不知道如何替换变量。因此常常使用假设法:
以截图为例,先假设全部是兔子(或者鸡也行,随便你了),那么腿应该是400条。
但是现在只有350条,少了50条。
而兔子的腿比鸡的多2条。也就是说,每只兔子换成一只鸡,就少2条腿。
少的50条腿可以换成的鸡是:50/2=25。即鸡数=25只,兔子=100-25=75只。

作者: yanwei82123300    时间: 2016-6-2 14:09
谢谢大家的回答,老师们太厉害了!
作者: tmtony    时间: 2016-6-2 17:20
回复几秒钟之间,阿航已经回了几贴
作者: roych    时间: 2016-6-2 17:48
tmtony 发表于 2016-6-2 17:20
回复几秒钟之间,阿航已经回了几贴

可以再加一个参数,把多脚的情况都考虑进去。
例如“鸡蜘蛛同笼”……【等等,确定鸡不吃蜘蛛吗?
作者: todaynew    时间: 2016-6-2 17:57
本帖最后由 todaynew 于 2016-6-2 18:03 编辑

Function GetArr(鸡腿 As Integer, 兔腿 As Integer, 鸡兔数 As Integer, 腿总数 As Integer) As Variant
    Dim Arr(1) As Integer
    Dim x As Integer '鸡
    Dim y As Integer '兔
    x = (腿总数 - 兔腿 * 鸡兔数) / (鸡腿 - 兔腿)
    y = 鸡兔数 - x
    Arr(0) = x
    Arr(1) = y
    GetArr = Arr
End Function
[attach]59235[/attach]

[attach]59236[/attach]

作者: 风中漫步    时间: 2016-6-4 15:14
楼主人脉真是广泛啊,谈笑有鸿儒,往来无白丁.

这贴除了我,都是大神




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3