Python递归法计算棋盘上所有路径总奖品最大值(京东2016编程题)
问题描述:假设有一个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编程题)相关推荐
- python棋盘放米循环结构_Python递归法计算棋盘上所有路径总奖品最大值(京东2016编程题)...
问题描述:假设有一个6x6的棋盘,每个格子里有一个奖品(每个奖品的价值在100到1000之间),现在要求从左上角开始到右下角结束,每次只能往右或往下走一个格子,所经过的格子里的奖品归自己所有.问最多能 ...
- 用递归法计算斐波那契数列的第n项
斐波纳契数列(Fibonacci Sequence)又称黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1, ...
- 编写函数求两个数的最大公约数,采用递归法计算两数的最大公约数。
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 题目: [实验案例3:函数的递归调用] 编写函数求两个数的最大公约数,采用递归法计算两数的最大公约数. [实验指导] 分析:m.n为两 ...
- C语言使用递归法计算n的阶乘
C语言使用递归法计算n的阶乘 #include <stdio.h> long Fact(int n); int main(){int n;long ret;printf("Inp ...
- 用递推法和递归法计算一个数的阶乘
递推法 #include<stdio.h> int main() {int n,y=1,i;scanf("%d",&n);if(n==0||n==1) y=1; ...
- python递归法画樱花_Python——画一棵漂亮的樱花树
代码货币符号分享给大家 樱花树 代码 import turtle as T import random import time 画樱花的躯干(60,t) def Tree(branch, t): ti ...
- 【100%通过率】华为OD机试真题 Python 实现【计算数组中心位置】【2022.11 Q4 新题】
所有题目均有五种语言实现.C实现目录.C++ 实现目录.Python实现目录.Java实现目录.JavaScript实现目录<
- c语言计算N升纯净水的分子数,C语言编程题
满意答案 去百度文库,查看完整内容> 内容自用户:小微风信 实验一:简单的C程序设计(2学时) 一.实验方式: 一人一机 二.实验目的: 1.了解C语言程序的编译环境和编写过程. 2.掌握C语言 ...
- 《用递归法解决问题》教学设计
转载:http://blog.sina.com.cn/s/blog_c1f95fa10102wv7q.html 原载于<中国信息技术教育>2017年第9期 江苏省大丰高级中学 庞 霞 江苏 ...
最新文章
- PowerPC VxWorks BSP分析7——image压缩
- FreeRTOS学习笔记4-FreeRTOS配置管理
- [云炬创业基础笔记]第十一章创业计划书测试2
- 专访腾讯多媒体实验室商世东:咬咬牙也要跟上新版本的发布
- html div三角形,【div】纯CSS绘制三角形
- 杨强教授领衔力作,《迁移学习》最新出炉,解决AI“最后一公里”问题 | 赠书...
- Nodejs教程09:实现一个带接口请求的简单服务器
- 第二十一天 认识一维数组part3
- 倒计时 5 天!Apache Flink Meetup · 北京站,1.13 新版本 x 互娱实践分享的开发者盛筵!...
- php高校学生户籍档案管理系统
- android自动画廊,Android3D画廊效果与自动轮播Banner
- 易康(eCognition)对象几何特征--1:几何(Geometry)_范围(Extent)
- 2021年剑桥高考成绩查询,2021年剑桥英语KET/PET成绩查询指南
- linux两台电脑共享文件夹怎么设置,快速几步完美实现两台电脑共享上网的设置...
- 2020计算机预推免(保研边缘人) | 重大、北邮、浙大软院、大连理工、华东师范、同济
- 软件测试49个必问面试题合集+答案
- Spring.NET企业架构实践之 JQuery + FlexiGrid + ASP.NET MVC + NVelocity + WCF + LINQ + NHibernate 综合应用
- 人族机器人叉兵_星际争霸:人虫两族都有回血机制,神族:你们都是渣渣
- 进程和线程.View椭圆运动
- java(Vue+SpringBoot)实现头像上传功能
热门文章
- 默认适应窗口_自适应网格分析带孔平板的应力集中问题
- oracle11环境变量path设置_LUENT软件UDF环境变量配置
- 计算机网络实验报告3-tcp,计算机网络实验报告3-TCP.doc
- python和控制流程_Python基础之:Python中的流程控制
- php 向上取整_PHP取整方法小总结
- oracle rman 实例,Oracle数据库rman常用命令的使用示例
- spring mvc 原理及应用
- http error 502.5
- Jquery精准计算
- if条件的默认转换规则: