【基础入门题030】《孙子算经》之鸡兔同笼

简介: 【基础入门题030】《孙子算经》之鸡兔同笼

【基础入门题】2021.11.26


《孙子算经》今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?


编程语言:包括但不限于Python

题目来源:派森特给站每日刷题频道

————————————————

即解整数不定方程组: i+j==35; i*2+j*4==94; i,j>=1

双循环:



def ChickenAndRabbit():
  for i in range(36):
    for j in range(36):
      if i*2+j*4==94 and i+j==35:
        return i,j
>>> ChickenAndRabbit()
(23, 12)



单循环

def ChickenAndRabbit():
  for i in range(36):
    if i*2+(35-i)*4==94:
      return i,35-i
>>> ChickenAndRabbit()
(23, 12)


抬腿法”一:

不管什么动物,都抬起两条腿:即变成“上有三十五头,下有二十四足(94-35x2=24)”,余下24足当然全是兔子的,所有兔子有12只,鸡有35-12=23只。

def ChickenAndRabbit(heads, feet):
  rabbits = (feet - heads*2)//2
  chickens = heads - rabbits
  return chickens,rabbits
>>> ChickenAndRabbit(35,94)
(23, 12)



抬腿法”二:

不管什么动物,都抬起一半的腿:即变成“上有三十五头,下有四十七足(94/2)”,余下47足减去总头数35就是兔子的数量,所有兔子有47-35=12只,鸡有35-12=23只。

def ChickenAndRabbit(heads, feet):
  rabbits = feet//2 - heads
  chickens = heads - rabbits
  return chickens,rabbits
>>> ChickenAndRabbit(35,94)
(23, 12)



扩展题

《孙子算经》中还有另外一题:今有兽,六首四足;禽,四首二足,上有七十六首,下有四十六足。问:禽、兽各几何?答曰:八兽、七禽。

def Animals():
  for i in range(77):
    for j in range(77):
      if i*6+j*4==76 and i*4+j*2==46:
        return i,j
>>> Animals()
(8, 7)



现代扩展的题目,变量可以是小数的,也可能是负数的


1. 蜘蛛有8条腿,蜻蜓有6条腿和2对翅膀,蝉有6条腿和1对翅膀。这三种小虫共18只,有118条腿和20对翅膀。每种小虫各几只?


2. 红铅笔每支0.19元,蓝铅笔每支0.11元,两种铅笔共买了16支,花了2.80元。问红,蓝铅笔各买几支?


3. 一份稿件,甲单独打字需6小时完成.乙单独打字需10小时完成,甲单独打若干小时后,因有事由乙接着打完,共用了7小时。甲打字用了多少小时?


4. 1998年时,父母年龄(整数)和是78岁,兄弟的年龄和是17岁。四年后(2002年)父的年龄是弟的年龄的4倍,母的年龄是兄的年龄的3倍。那么当父的年龄是兄的年龄的3倍时,是公元哪一年?


5. 某次数学考试考五道题,全班52人参加,共做对181道题,已知每人至少做对1道题,做对1道的有7人,5道全对的有6人,做对2道和3道的人数一样多,那么做对4道的人数有多少人?


6. 某次数学竞赛共有10题,答对加4分,答错或不答扣2分。一位同学得了4分,请问这位同学答对几题?



目录
相关文章
|
8月前
|
机器学习/深度学习 人工智能 Java
牛客xiao白月赛 40
牛客xiao白月赛 40
61 0
|
定位技术
小d和超级泡泡堂(牛客)
小d和超级泡泡堂(牛客)
LeetCode——新手村
LeetCode——新手村
130 0
|
存储 IDE 开发工具
【太极创客】零基础入门学用Arduino 第一部分 合辑笔记
什么是变量? 变量储存在内存里 变量值_可变 变量名_不变 变量类型 整数型int 创建变量 int currentTemperature; 变量名称规则 用连贯的一个词 特殊字符不能用 第一个不能是数字 不能使用关键字
772 0
|
C语言
C语言程序设计第五版 谭浩强 p292 6, 9 14 p330 1 , 5题解
C语言程序设计第五版 谭浩强p 215-216 1. 4. 6. 8.11题解 (其它) p292 6, 9 14 p330 1 , 5
183 0
|
C语言
C语言程序设计第五版 谭浩强 P107 3,4,6,8,9题解
1)3+4>5 优先3+4得到结果7,因此7>5结果为真; 4==5为假,一真一假逻辑与最终结果为假。结果为0 (2)优先算术运算4+5得到7,非0则为真,4-5得到-1,非0则为真,||和&&优先级最低,自左向右运算,3||7结果为1,1&&-1结果为1,一真一假逻辑与最终结果为假。结果为1
123 0