Python算法设计 - McCarthy 91

news2024/10/5 17:21:23

目录

    • 一、什么是 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))

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

输出结果
在这里插入图片描述

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

四、作者Info

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/426212.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT之widget窗口标题与项目构建目标位置修改

文章目录widget窗口标题修改方法一,直接通过UI界面修改方法二,通过代码修改结果展示,选择其中一种方法即可构建项目生成文件目标位置修改1. 首先选择——>项目,如图所示:2.打开后选择构建设置——>编辑构建位置&…

【VScode】手把手教你如何搭建C/C++开发环境

目录 1.VScode是什么 2.VScode的下载和安装 安装中文插件 3.VScode配置C/C开发环境 3.1 下载MinGW-w64 编译器套件 3.2 配置MinGW-w64 3.3 安装C/C插件 4.在VScode上编写C语言代码并编译成功 4.1打开文件夹 4.2 新建C语言文件,编写C语言代码 4.3设置C/…

vue3项目中使用pinia

vuex 4pinia 小菠萝 vuex和之前vue2使用一致 1.import { createStore } from vuex 引入文件不同vue3组件setup写法vuex提供了hook //组件中操作store import { useStore } from vuex //提交mutations 进行修改 store.commit(increment), //dispatch 触发action 同步或者异步提交…

【C】Process Control

系列连载 【python / C / C】 参考 《C语言程序设计(第四版)谭浩强》【C语言】C语言视频教程《郝斌 C 语言自学教程》 文章目录1 什么是流程控制2 流程控制的分类2.1 顺序执行2.2 选择执行2.3 循环执行2.3.1 for2.3.2 while2.3.3 do...while2.3.4 swi…

[ 汇编语言 (一) ] —— 踩着硬件的鼓点,掌握计算机的精髓

🙌秋名山码民的主页 😂一个打过一年半的oier,写过一年多的Java,现在致力于学习iot应用的普通本科生 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 🙏作者水平有限,如发现…

数据库系统工程师——第二章 程序语言基础知识

文章目录📂 第二章、程序语言基础知识 📁 2.1 程序语言概述 📖 2.1.1 程序语言的基本概念 📖 2.1.2 程序语言的基本成分 📁 2.2 程序语言翻译基础 📖 2.2.1 汇编程序基本原理 📖 2.2.2 编译程序…

算法之归并排序

文章目录一、归并排序(递归版)二、归并排序(非递归版)一、归并排序(递归版) 归并排序思想:将数组划分为两个区间,左区间,右区间 然后对这两个区间内容进行排序 &#xff…

一文讲懂C#、ASP.NET、ASP.NET MVC、ASP.NET web form、asp.net core mvc的区别

微软的命名很糟糕。技术上有两个框架:ASP.NET和ASP.NET Core,它们分别基于.NET Framework和.NET Core构建。 当Microsoft首次尝试创建一个遵循MVC模式的“现代”Web应用程序平台时,它将这个新平台称为“ASP.NET MVC”,以区别于以前…

【性能优化】cocoscreator 共享节点-动效复用方案

前言 迷雾散尽,露出了古朴庄严的森林。古老的铁杉,在头顶编成绿色穹顶。 阳光在树叶间破碎成金色顶棚。从树干间远眺,远处的森林渐渐隐去。 用几句话就能描述一片巨大的森林,但是在实时游戏中做这件事就完全是另外一件事了。 当屏…

[数据结构-C语言] 算法的时间复杂度

目录 1.算法的复杂度 2.时间复杂度 2.1 时间复杂度的概念 2.2 大O的渐进表示法 3、常见时间复杂度计算举例 3.1 冒泡排序 3.2 二分查找 3.3 阶乘递归 3.4 斐波那契数列 1.算法的复杂度 算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源 …

PS学习记录——自动选择的【图层】/【组】模式说明

PS中,【移动工具】状态下,上方的工具栏有个【自动选择功能】,用于移动图像 自动选择下有【图层】、【组】两种选项 1、自动选择-【图层】 图层模式下,自动选择可以任意移动选中的图像图层,想移动哪个就移动哪个 即便不…

43.CSS grid布局

本节我们学习的初始代码如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" …

110页智慧农业解决方案(农业信息化解决方案)(ppt可编辑)

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用&#xff0c;如有侵权请联系删除。 第一部分 智慧农业概述 智慧农业以农业资源为基础、市场为导向、效益为中心、产业化为抓手&#xff0c;面向农业管理部门、农技推广部门、农业企业、农业园区和基地、农业专家…

【C】Pointer

系列连载 【python / C / C】 参考 《C语言程序设计&#xff08;第四版&#xff09;谭浩强》【C语言】C语言视频教程《郝斌 C 语言自学教程》 文章目录一、指针的重要性二、指针的定义三、指针的分类基本类型指针指针和一维数组指针和函数指针和结构体多级指针int * p;// p …

CASS自带数据-绘制地形图

1、打开cass软件&#xff0c;如下图&#xff1a; 2、点击“绘图处理”菜单栏&#xff0c;选择“展野外测点点号”&#xff0c;如下&#xff1a; 3、在命令栏输入绘图比例尺&#xff0c;这里选择默认1:500&#xff0c;点击回车键进入下一步&#xff0c; 4、在弹出的窗口中&#…

单片机通过串口向电脑端发送数据电脑端发送数据控制led

上节课我们学习了串口的理论部分&#xff0c;这节课我们要来学习实操部分。 要想实现单片机通过串口向电脑端发送数据&#xff0c;我们首先要来配置寄存器。 1.配置SCON SCON寄存器中的SM0配置为0&#xff0c;SM1配置为1决定了串口工作在模式一&#xff0c;也就是8位UART&am…

前端透明分栏设计

目前在开发一个基于众包的打分网站&#xff0c;前端遇到的一个需求是&#xff1a; 背景是电影的海报&#xff0c;且不能随着scroll-bar滚动&#xff0c;需要一个蒙版分为两栏&#xff0c;左侧是影视的媒体信息&#xff0c;不随页面滚动右侧是影视的基本信息和评分信息&#xf…

如何使用基于GPT-4的Cursor编辑器提升开发效率

程序员最恨两件事情&#xff1a;一是别人代码不写文档&#xff0c;二是要让自己写文档。随着 GPT-4 的到来这些都不是问题了&#xff0c;顺带可能连程序员都解决了。。。 之前一直觉得 AI 生成的代码也就写个面试题的水平&#xff0c;小打小闹&#xff0c;现在时代可变了。Curs…

@Conditional四个较常用的派生注解总结

该内容是在学习SpringBoot底层的时候&#xff0c;看到SpringBoot的使用&#xff0c;所以这的做一个简单的总结方便以后复习。可能会有一些问题&#xff0c;还望指出共同学习 Conditional注解&#xff1a; 作用&#xff1a;按照一定的条件进行判断&#xff0c;在满足给定条件后…

如果采用密钥对的形式登录系统后,如何由普通用户切换到root用户

使用xshell工具 采用秘钥的方式进行登录 创建一个新用户并设置密码 切换到新用户之后 su root 想要切换成root用户的时候 输入密码提示 su:Authentication failure su&#xff1a;身份验证失败 使用秘钥之后是不能使用密码再进行登录 我去阿里云查了一下 有一个相同…