方格运动问题

2023-10-27

常见的一个经典问题:

给定一个方格子。另左上角坐标为(0,0),右下角坐标为(M,N),从左上角开始每次只能向右走或者向下走,最后达到右下角的位置。求一共有多少种不同的路径?

数学的想法

对于计算这个问题的时候,可以去思考,不管怎样,从上往下从左往右,一共要走M+N步,那么,只需要去考虑,哪几步朝下,哪几步向右就可以了。运用排列得公式直接写作 C M + N M C_{M+N}^{M} CM+NM或者是 C M + N N C_{M+N}^{N} CM+NN即可。

代码

运用代码来写递归的方式同样可以计算
python代码如下 代码片:

import numpy as np
import pandas as pd

def get_num(i):
    k = input('请输入{},若希望终止请输入 \'False\' :'.format(i))
    k = k.upper()
    if k == 'FALSE':
        return False
    try:
        k=float(k)
    except ValueError as reason:
        print('输入有误,请输入整数值:')
        return get_num(i)
    if k==int(k):
        k=int(k)
    else:
        print('输入有误,您输入的数值为浮点数,请输入整数值')
        return get_num(i)
    return k

def Coordinate_acqu():
    coordinate_name=[['begin_point_X','begin_point_Y'],['end_point_X','end_point_Y']]
    coordinate = np.zeros((2,2)).tolist()
    for point in range(len(coordinate_name)):
        for pointk in range(len(coordinate_name[point])):
            coordinate[point][pointk] = get_num(coordinate_name[point][pointk])
            if coordinate[point][pointk] is False:
                return False
    return coordinate
     

def num_count(begin_point,end_point):   #其实也就只有这个地方的是主要的内容,其他都没什么用
    '''
    func:迭代计算不同路径的总数
    paramter:
    begin_point:起始坐标
    end_point:终止坐标
    return:路径的总数
    '''
    if begin_point[0]>end_point[0] or begin_point[1]>end_point[1]:
        return 0
    if begin_point==end_point:
        return 1
    else:
        return num_count([begin_point[0]+1,begin_point[1]],end_point)+ \
                num_count([begin_point[0],begin_point[1]+1],end_point)

if __name__=='__main__':
    point = Coordinate_acqu()
    if point is False:
        print('输入的内容有误,程序已经终止')
    else:
        [begin_point,end_point]= point
        a ='='*50
        print('\n',a,end='\n\n')
        print('输入的初始坐标为:{}\n输入的终止坐标为:{}'.format(begin_point,end_point))
        num = num_count(begin_point,end_point)
        print('所走的总的不同路径共有 {} 种'.format(num))




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

方格运动问题 的相关文章

  • 我应该如何在 python 中使用 lxml 处理 XLink 引用?

    我被要求编写一些读取 XML 配置文件的脚本 这些文件充分利用 XLink 来包含存储在多个文件中的 XML 例如
  • Python 将列表中的字符串转换为数字

    我遇到了以下错误消息 以 10 为基数的 int 的文字无效 2 2 外部用单引号括起来 内部用双引号括起来 该数据位于primes列出使用print primes 0 样本数据在primes list 2 3 5 7 The primes
  • cv2.face.mindistancepredictcollector() 错误

    我已经安装了带有额外模块的 opencv 3 1 0 但是当我尝试使用 gt gt gt s cv2 face MinDistancePredictCollector 它返回一个错误 Traceback most recent call l
  • Python 按文件夹模块导入

    我有一个目录结构 example py templates init py a py b py a py and b py只有一个类 名称与文件相同 因为它们是猎豹模板 纯粹出于风格原因 我希望能够在中导入和使用这些类example py像
  • Pygame 玩家精灵没有出现

    我一直在为学校计算机课做这个项目 但无法让玩家精灵出现 有人可以帮忙吗 当我运行主游戏循环时 除了玩家精灵之外 所有内容都正确显示 它应该由于箭头输入而在屏幕上移动并受到重力的影响 当我删除图像并仅使用对象类和矩形时 该代码也有效 impo
  • 如何更改条形图上的 y 轴限制?

    我有一个df 我从中索引了europe n我绘制了一个条形图 europe n r 5 c 45 looks like this df Country string df Population numeric 变量 plt bar df C
  • 将列表传递给 PyCrypto 中的 AES 密钥生成器

    我尝试使用 Pycrypto 生成 AES 密钥 但收到以下错误 类型错误 列表 不支持缓冲区接口 对于以下声明 aescipher AES new mykey AES MODE ECB mykey 属于类型list并包含 18854347
  • 更改Python pylab玫瑰/极坐标图中图例标题的字体大小

    我正在尝试更改玫瑰图或 极地 图上现有图例标题的字体大小 大部分代码是由不在的其他人编写的 我已经添加 ax legend title legend title setp l get title fontsize 8 添加标题 legend
  • 如何使用泛型类型的构造函数

    如何使用 python 泛型类型的构造函数 T typing TypeVar T class MyClass typing Generic T def init self initialValue typing Iterable self
  • 如何抑制 pyinstaller 生成的可执行文件窗口中的所有警告

    我已经使用 pyinstaller 从 python 文件生成了可执行文件 该程序按其应有的方式工作 但在我想隐藏的窗口中出现了一条警告消息 当 python 文件在 IDE 中运行时 以下行会抑制所有警告消息 warnings filte
  • 如何在树莓派上更新到最新的 python 3.5.1 版本?

    我昨天拿到了 Raspberry Pi 我已经在尝试用它来编写代码了 我有一个计划在其上运行的程序 但它仅与 Python 版本 3 5 0 或 3 5 1 兼容 并且我在互联网上找到的所有内容似乎都已经过时 与 Python 2 有关 或
  • import numpy 和 import numpy as np 之间的区别

    我明白 如果可能的话 应该使用 import numpy as np 这有助于避免由于命名空间引起的任何冲突 但我注意到虽然下面的命令有效 import numpy f2py as myf2py 以下不 import numpy as np
  • 在Python中引用不带换行符的长字符串

    我正在尝试在 Python 中编写一个长字符串 该字符串显示为 OptParser 选项的帮助项 在我的源代码 py 文件中 我想放置换行符 以便我的代码不会花费新行 但是 我不希望这些换行符影响代码运行时该字符串的显示方式 例如 我想写
  • 在 Django/python 中,如何将内存缓存设置为无限时间?

    cache set key value 9999999 但这并不是无限的时间 def get memcache timeout self timeout Memcached deals with long gt 30 days timeou
  • 避免在列表理解中计算相同的表达式两次[重复]

    这个问题在这里已经有答案了 我在列表理解中使用一个函数和一个 if 函数 new list f x for x in old list if f x 0 令我恼火的是这个表达f x 在每个循环中计算两次 有没有办法以更清洁的方式做到这一点
  • 检测图像是否损坏或损坏

    我需要以编程方式检查用户在我的应用程序上选择作为壁纸的图像是否已损坏或损坏 基本上我为用户提供了选择自己的图像作为壁纸的选项 现在 当图像加载时 我只想检查它是否已损坏 如果您正在寻找 PHP 解决方案而不是 javascript 解决方案
  • sklearn 中带有词袋和附加情感特征的文本分类器

    我正在尝试构建一个分类器 除了词袋之外 还使用情绪或主题 LDA 结果 等特征 我有一个包含文本和标签的 pandas DataFrame 并且想添加情感值 5 到 5 之间的数字 和 LDA 分析结果 带有句子主题的字符串 我有一个工作词
  • Python请求401错误但url在浏览器中打开

    我正在尝试从这个位置提取 json https www nseindia com api option chain indices symbol BANKNIFTY https www nseindia com api option cha
  • python pandas如何在多个条件下过滤字符串

    我有以下数据框 import pandas as pd data 5Star FiveStar five star fiv estar data pd DataFrame data columns columnName 当我尝试用一 种条件
  • PyQt QFileDialog exec_ 很慢

    我正在使用自定义QFileDialog因为我想选择多个目录 但是exec 功能非常慢 我不明白为什么 我正在使用最新版本的 PyQt 代码片段 from PyQt4 import QtGui QtCore QtNetwork uic cla

随机推荐

  • c#数据类型

    数据类型 值类型 int float bool sizeof 查询变量占内存大小 一字节 8比特位 float 单精度浮点数 doublle 结构体 struct Student 访问类型 public公开 private类或结构体内部 i
  • bootstrap知识总结

    Bootstrap框架 一 Bootstrap简介 Bootstrap是一个用于快速开发Web应用程序和网站的前端框架 Bootstrap是基于HTML CSS JavaScript的 二 Bootstrap 特点 1 跨设备 跨浏览器 可
  • Angular4之动画

    在angular里面 动画的本质 是在一定时间 由一个状态转换到另一个状态 期间的过渡效果就是显示出来就是动画 例如 import Component Input from angular core import trigger state
  • 基于MCGS与PLC的四路抢答器

    实验要求 四路抢答器每一位抢答的选手都有一个抢答按钮 1号抢答按钮为SB1 2号抢答按钮为SB2 3号抢答按钮为SB3 4号抢答按钮为SB4 以及各位抢答选手的指示灯 主持人的位置设有抢答开始按钮SB5以及清零按钮SB6 另外系统中 有一个
  • 读《影响力》西奥迪尼---笔记

    读 影响力 西奥迪尼 笔记 1 本书框架 包括互惠 承诺与一致 社会认同 喜爱 权威 稀缺六大影响力武器 2 文书意图 从原理 成因上讲述这六个影响力武器对我们的影响 以及商家或者其他想要获利的如何利用影响力武器获取利益 意图说服我们如何拒
  • dvwa靶场通关(十二)

    第十二关 Stored Cross Site Scripting XSS 存储型xss low 这一关没有任何防护 直接输入弹窗代码 弹窗成功 medium 先试试上面的代码看看 有没有什么防护 发现我们的script标签不见了 应该是被过
  • 在JSP编译的时候,服务器内部做了什么?

    在JSP第一次获得请求时 不管请求来自于客户端浏览器还是服务器上的servlet JSP文件将被JSP引擎 JSP engine 转换成为一个servlet 而这个引擎本身也是一个servlet 在JSWDK 它就是 JspServlet
  • OpenCV - Mat、滤波、卷积的实现

    1 Mat数据类型 创建图像 Mat M 2 2 CV 8UC3 Scalar 0 0 255 改变图像尺寸 M create 4 4 CV 8UC2 快速创建图像的集中方法 Mat E Mat eye 4 4 CV 64F Mat F M
  • 子网掩码详解

    IP地址 IP地址被用来给Internet上的电脑一个编号 大家日常见到的情况是每台联网的PC上都需要有IP地址 才能正常通信 我们可以把 个人电脑 比作 一台电话 那么 IP地址 就相当于 电话号码 而Internet中的路由器 就相当于
  • C++设计模式

    设计模式有 6 大设计原则 单 职责原则 就 个类 应该仅有 个引起它变化的原因 开放封闭原则 软件实体可以扩展 但是不可修改 即 对需求 对程序的改动可以通过增加代码来完成 但是不能改动现有的代码 代换原则 个软件实体如果使 的是 个基类
  • HTML和CSS实现京东登录页面(html,css代码详解)

    HTML代码 基本布局 QQ 2248557717 下载链接地址 https download csdn net download dwjdj 15807158
  • STM32 C语言使用 memset清空结构体 导致改变其他结构体数据的问题

    首先 在C语言中 清空结构体的方法 我们一般会采用 memset函数 其原型是 void memset void ptr int value size t num 函数功能 填充内存块 将ptr指向的内存块的前num个字节设置为指定值 va
  • 2021年华中杯A题(马赛克瓷砖选色问题)详细分析

    目录 一 基本介绍 1 1 题目描述 1 2 待解决问题 二 问题分析与求解 2 1 问题一分析与求解 2 2 问题二分析与求解 2 3 问题三分析与求解 三 完整代码 四 总结 一 基本介绍 1 1 题目描述 马赛克瓷砖是一种尺寸较小 常
  • 七、JDK1.7中HashMap扩容机制

    导读 前面文章一 深入理解 Java集合初篇 中我们对Java的集合体系进行一个简单的分析介绍 上两篇文章二 Jdk1 7和1 8中HashMap数据结构及源码分析 三 JDK1 7和1 8HashMap数据结构及源码分析 续 中我们分别对
  • 基于货运APP的全栈开发实践:后端用PHP,前端用Uni-app实现兼容性

    在上一篇文章中 我们介绍了货运APP如何助您提高运输效率 本文将重点介绍该货运APP的技术实现 并探讨后端和前端所使用的技术以及如何实现兼容性 后端技术实现 PHP 货运APP的后端采用PHP作为开发语言 下面是一些关键点的介绍 服务器环境
  • [MySQL]存储过程与函数

    文章目录 1 存储过程概述 1 1 含义 1 2 执行过程 1 3 好处 1 4 与视图 函数的对比 1 5 存储过程的分类 2 创建存储过程 2 1 语法 2 2 设置结束标志 2 3 创建存储过程示例 2 3 1 准备工作 2 3 2
  • 闲扯测试工程师之发展(觉得不错,拿来与大家分享)

    一 测试工程师的历史 我算是接触互联网测试工作比较早的一批人了 在2010年研二实习的时候就开始在一家加拿大的企业做测试开发工程师了 2012年毕业的时候 貌似互联网行业开始有专职的测试人员 而且不少中小型公司还没有专职的测试人员 程序的质
  • Java输入char类型的方法

    C 中可以用输入流cin轻松的完成对int char String double等等基本数据类型的输入 而JAVA中则必须使用Scanner类 头文件java util Scanner 对于其他的数据类型Scanner类提供了直接的函数使用
  • 充电器 蓝桥杯十四届模拟 python

    问题描述 小蓝有一个充电器 可以使用不同的电压和电流充电 给定充电器工作的记录 请计算在这个记录期间总共通过充电传输了多少电能 输入格式 输入第一行包含一个整数 n 表示记录的条数 接下来 n 行 每行包含一个时刻 T 和两个非负整数 U
  • 方格运动问题

    常见的一个经典问题 给定一个方格子 另左上角坐标为 0 0 右下角坐标为 M N 从左上角开始每次只能向右走或者向下走 最后达到右下角的位置 求一共有多少种不同的路径 数学的想法 对于计算这个问题的时候 可以去思考 不管怎样 从上往下从左往