问题描述:假设有一个6x6的棋盘,每个格子里有一个奖品(每个奖品的价值在100到1000之间),现在要求从左上角开始到右下角结束,每次只能往右或往下走一个格子,所经过的格子里的奖品归自己所有。问最多能收集价值多少的奖品。

思路:每个格子所在路径的总奖品最大值依赖于左边的格子或右边的格子。

from random import randrange

def generateRandomValues(m, n):
    #生成含有随机奖品价值的m*n棋盘
    values = [[randrange(100, 1000) for i in range(m)] for j in range(n)]
    return values

def maxValues(values, m, n):
    #使用递归算法计算总奖品最大值
    #如果不在表格范围之内,返回0
    if m<0 or n<0:
        return 0
    else:
        #否则,返回前两个位置所在路径的最大总奖品价值和当前位置奖品的和
        return max(maxValues(values, m-1, n), maxValues(values, m, n-1)) + values[m][n]

def output(values, n):
    #打印表格
    formatter = '----'*n+'\n|'
    for i in range(n):
        formatter += '{0['+str(i)+']}|'
    for item in values:
        print(formatter.format(item))
    print('----'*n)

n = 6
values = generateRandomValues(n, n)
output(values, n)
print(maxValues(values, n-1, n-1))

两次运行结果:

Python递归法计算棋盘上所有路径总奖品最大值(京东2016编程题)相关推荐

  1. python棋盘放米循环结构_Python递归法计算棋盘上所有路径总奖品最大值(京东2016编程题)...

    问题描述:假设有一个6x6的棋盘,每个格子里有一个奖品(每个奖品的价值在100到1000之间),现在要求从左上角开始到右下角结束,每次只能往右或往下走一个格子,所经过的格子里的奖品归自己所有.问最多能 ...

  2. 用递归法计算斐波那契数列的第n项

     斐波纳契数列(Fibonacci Sequence)又称黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1, ...

  3. 编写函数求两个数的最大公约数,采用递归法计算两数的最大公约数。

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 题目: [实验案例3:函数的递归调用] 编写函数求两个数的最大公约数,采用递归法计算两数的最大公约数. [实验指导] 分析:m.n为两 ...

  4. C语言使用递归法计算n的阶乘

    C语言使用递归法计算n的阶乘 #include <stdio.h> long Fact(int n); int main(){int n;long ret;printf("Inp ...

  5. 用递推法和递归法计算一个数的阶乘

    递推法 #include<stdio.h> int main() {int n,y=1,i;scanf("%d",&n);if(n==0||n==1) y=1; ...

  6. python递归法画樱花_Python——画一棵漂亮的樱花树

    代码货币符号分享给大家 樱花树 代码 import turtle as T import random import time 画樱花的躯干(60,t) def Tree(branch, t): ti ...

  7. 【100%通过率】华为OD机试真题 Python 实现【计算数组中心位置】【2022.11 Q4 新题】

             所有题目均有五种语言实现.C实现目录.C++ 实现目录.Python实现目录.Java实现目录.JavaScript实现目录<

  8. c语言计算N升纯净水的分子数,C语言编程题

    满意答案 去百度文库,查看完整内容> 内容自用户:小微风信 实验一:简单的C程序设计(2学时) 一.实验方式: 一人一机 二.实验目的: 1.了解C语言程序的编译环境和编写过程. 2.掌握C语言 ...

  9. 《用递归法解决问题》教学设计

    转载:http://blog.sina.com.cn/s/blog_c1f95fa10102wv7q.html 原载于<中国信息技术教育>2017年第9期 江苏省大丰高级中学 庞 霞 江苏 ...

最新文章

  1. PowerPC VxWorks BSP分析7——image压缩
  2. FreeRTOS学习笔记4-FreeRTOS配置管理
  3. [云炬创业基础笔记]第十一章创业计划书测试2
  4. 专访腾讯多媒体实验室商世东:咬咬牙也要跟上新版本的发布
  5. html div三角形,【div】纯CSS绘制三角形
  6. 杨强教授领衔力作,《迁移学习》最新出炉,解决AI“最后一公里”问题 | 赠书...
  7. Nodejs教程09:实现一个带接口请求的简单服务器
  8. 第二十一天 认识一维数组part3
  9. 倒计时 5 天!Apache Flink Meetup · 北京站,1.13 新版本 x 互娱实践分享的开发者盛筵!...
  10. php高校学生户籍档案管理系统
  11. android自动画廊,Android3D画廊效果与自动轮播Banner
  12. 易康(eCognition)对象几何特征--1:几何(Geometry)_范围(Extent)
  13. 2021年剑桥高考成绩查询,2021年剑桥英语KET/PET成绩查询指南
  14. linux两台电脑共享文件夹怎么设置,快速几步完美实现两台电脑共享上网的设置...
  15. 2020计算机预推免(保研边缘人) | 重大、北邮、浙大软院、大连理工、华东师范、同济
  16. 软件测试49个必问面试题合集+答案
  17. Spring.NET企业架构实践之 JQuery + FlexiGrid + ASP.NET MVC + NVelocity + WCF + LINQ + NHibernate 综合应用
  18. 人族机器人叉兵_星际争霸:人虫两族都有回血机制,神族:你们都是渣渣
  19. 进程和线程.View椭圆运动
  20. java(Vue+SpringBoot)实现头像上传功能

热门文章

  1. 默认适应窗口_自适应网格分析带孔平板的应力集中问题
  2. oracle11环境变量path设置_LUENT软件UDF环境变量配置
  3. 计算机网络实验报告3-tcp,计算机网络实验报告3-TCP.doc
  4. python和控制流程_Python基础之:Python中的流程控制
  5. php 向上取整_PHP取整方法小总结
  6. oracle rman 实例,Oracle数据库rman常用命令的使用示例
  7. spring mvc 原理及应用
  8. http error 502.5
  9. Jquery精准计算
  10. if条件的默认转换规则: