Python算法设计 - McCarthy 91

目录

    • 一、什么是 McCarthy 91
    • 二、有什么用?
    • 三、Python算法实现
    • 四、作者Info

一、什么是 McCarthy 91

McCarthy 91 是一个递归的函数表达式如下

在这里插入图片描述
函数的意思是当输入一个大于 100 的数字 n 时返回 n-10,而当输入一个小于等于101的数字 n 时递归的对 n 进行运算,但是结果总是 91。

二、有什么用?

这个函数的作用,是做为一个例子来让学生学会如何证明某种规范或是模式(或者说学会一种证明思想),而不是真的让你去证明 f(5) 是不是 等于91

三、Python算法实现


#第一种设置变量写法
def mccarthy91(n):     
  k = 1
  while k:
    if n > 100:
      n -= 10
      k -= 1
    else:
      n += 11
      k += 1
  return n
# 第二种递归写法
def mccarthy91_rec(n):
  if n > 100:
    return n - 10
  else:
    return mccarthy91_rec(mccarthy91_rec(n + 11))


print(mccarthy91_rec(50))

注意:上面这两种函数写法都可以,但建议使用第二种

输出结果
Python算法设计 - McCarthy 91_第1张图片

如图所示,无论使用哪种函数,对于n小于等于101,结果都为91

四、作者Info

Author:小鸿的摸鱼日常,Goal:让编程更有趣!

专注于算法、爬虫,游戏开发,数据分析、自然语言处理,AI等,期待你的关注,让我们一起成长、一起Coding!

版权说明:本文禁止抄袭、转载,侵权必究!

你可能感兴趣的:(python算法设计,python,算法)