逻辑推理 - 农夫养牛问题

简介: 逻辑推理 - 农夫养牛问题

上周五晚上,在某群上看到下面这么道面试题目:


题目:


一个农夫,买了一头小牛,这头牛,成长到第四年开始,会每年生一头小牛,所生出来的小牛成长到第四年开始,也会每年生出一头小牛,请问 N 年之后,农夫共有多少头牛?


不考虑其他情况,比如死亡,逃跑等情况


思路


可以生育的牛称为大牛,未可生育的牛称为小牛


第 1 年:1头小牛


第 2 年:1头小牛


第 3 年:1头小牛


第 4 年:1头小牛,1头大牛 - 2头牛


第 5 年:2头小牛,1头大牛 - 3头牛


第 6 年:3头小牛,1头大牛 - 4头牛


第 7 年:4头小牛,2头大牛 - 6头牛


第 8 年:6头小牛,3头大牛 - 9头牛


...


实现


作为一个切图仔,我们使用javascript来实现下~


// 一个农夫,买了一头小牛,这头牛,成长到第四年开始,会每年生一头小牛,所生出来的小牛成长到第四年开始,也会每年生出一头小牛,请问 N 年之后,农夫共有多少头牛?
// 不考虑其他情况
class Cow {
  constructor() {
    this.age = 1
  }
  addAge() {
    this.age++
  }
  isCanBirth() {
    return this.age >= 4;
  }
}
function init(year) {
  let arr = [new Cow()];
  for(let i = 1; i <= year; i++) {
    for(let j = 0; j < arr.length; j ++) {
      let cow = arr[j];
      if(cow.isCanBirth()) {
        arr.push(new Cow())
      } else {
        cow.addAge()
      }
    }
    console.log(`第${i}年,有${arr.length}个牛`)
  }
}
init(10)
复制代码


上面程序运行结果如下:


"第1年,有1个牛"
"第2年,有1个牛"
"第3年,有1个牛"
"第4年,有2个牛"
"第5年,有3个牛"
"第6年,有4个牛"
"第7年,有6个牛"
"第8年,有9个牛"
"第9年,有13个牛"
"第10年,有19个牛"
复制代码


上面有啥不严谨的地方,希望您指出。



相关文章
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
NLG技术
【7月更文挑战第29天】NLG技术
86 9
|
6月前
|
机器学习/深度学习 人工智能 算法
搞懂大模型的智能基因,RLHF系统设计关键问答
搞懂大模型的智能基因,RLHF系统设计关键问答
157 0
|
6月前
情感理论模型
情感理论模型
258 0
|
4月前
|
机器学习/深度学习 自然语言处理 搜索推荐
自然语言生成技术
【7月更文挑战第28天】自然语言生成技术
60 5
|
4月前
|
机器学习/深度学习 自然语言处理 机器人
什么是自然语言生成技术
【7月更文挑战第27天】什么是自然语言生成技术
71 3
|
6月前
|
自然语言处理 算法 搜索推荐
用自然语言表示计算机算法
用自然语言表示计算机算法
89 1
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】自然语言引导下的单目深度估计:泛化能力与鲁棒性的新挑战
【机器学习】自然语言引导下的单目深度估计:泛化能力与鲁棒性的新挑战
64 0
|
6月前
|
测试技术 计算机视觉
斯坦福新研究提升大模型长视频理解能力
【2月更文挑战第29天】斯坦福大学研究团队开发的VideoAgent系统在长视频理解上取得突破,提升了大型语言模型处理视频内容的能力。该系统通过模拟人类认知过程,以高效(平均8.4帧)实现高准确率(54.1%和71.3%的零样本准确率),在EgoSchema和NExT-QA基准测试中超越现有最佳方法。VideoAgent借鉴人类观看视频的方式,迭代选择关键帧进行信息提取和推理,为长视频理解设定新标准。论文链接:[arxiv.org/pdf/2403.10517.pdf](https://arxiv.org/pdf/2403.10517.pdf)
221 1
斯坦福新研究提升大模型长视频理解能力
|
定位技术 uml
认知科学建模研究、认知神经科学的限制:建模笔记翻译(3)
认知科学建模研究、认知神经科学的限制:建模笔记翻译(3)
80 0
|
机器学习/深度学习 人工智能 算法
因果AI如何发现因果
因果发现算法可以从数据中找到因果关系的线索。其中条件独立是众多算法找寻的关键证据。经典的因果发现算法分2类,一类是基于约束的算法,另一类是基于分数的算法。本文介绍了基于约束的算法中最经典的PC算法的算法思想,让大家能够直观理解算法是如何发现因果关系的,并给出了因果发现算法中的一些不足。
290 0
因果AI如何发现因果