==============
版权声明:由于公众号后台规则问题,本文暂时无法设置原创标记,但仍属原创内容,微信公众号“Python小屋”坚持只发原创技术文章。
=============
推荐教材1:董付国编著,《Python数据分析、挖掘与可视化 (慕课版 第2版)》,ISBN:978-7-115-62634-9,定价59.8元,2024年1月出版(第1版累计印刷11次,已退出历史舞台),配套慕课“Python数据分析与数据可视化”被评为智慧树精品课程,人民邮电出版社“优秀作译者”
图书内容:Python快速入门,NumPy数组与矩阵运算,Pandas数据分析实战,sklearn机器学习实战,Matplotlib数据可视化实战
配套慕课:智慧树网搜索“董付国”,书中二维码也可以看微课
页数:254
适用专业:计算机、数据科学、统计、管理
适用层次:研究生/本科/专科
适用学时:48/64
样书申请:https://www.ryjiaoyu.com/book/details/50017
================
推荐教材2:董付国著,《Python程序设计与数据采集(微课版)》,ISBN:978-7-115-61183-3,人民邮电出版社,2023年5月出版,2023年9月第2次印刷,定价59.8元
配套资源:教学大纲、电子教案、课件、源码、数据文件、章节习题及答案、25小时微课、在线练习与考试系统
样书申请:https://www.ryjiaoyu.com/book/details/45732
小明参加一个游戏,面前从左向右有若干个门,最右边一个门里面是宝藏,前面的每个门打开后会看到一个数字,这个数字表示玩家最多可以向右跨越几个门,例如3表示玩家可以在右边的第1、2、3这三个门中选择一个打开,1表示只能选择打开下一个门,0表示掉进陷阱不能再移动(游戏失败)。从下标0出发,尝试所有可能的下一步选择,对于每个选择都尝试再下一步的所有可能选择,重复这个过程。到达目的地或者无法继续行走时回退一步继续尝试其他选择,尝试所有可能的路径并记录经过的位置,如果某条路径最终到达最后一个门就标记为一个有效路径。例如,以列表[5, 4, 3, 2, 2, 0, 3]为例,从下标0出发的下一步可以到达下标1、2、3、4、5这五个位置,假设下一步选择了下标1那么再下一步可以到达下标2、3、4、5,假设下一步选择了下标2那么再下一步可以到达下标3、4、5,假设下一步选择了下标3那么再下一步可以到达下标4、5,假设下一步选择了下标4那么再下一步可以到达下标5、6,假设下一步选择了下标5结果该位置的数字为0表示掉入陷阱无法移动,于是回退一步回到下标4,重新选择下标6发现到达终点,标记为一条有效路径。然后再回退到下标4的位置发现从该位置出发的路径都走完了,于是再回退一步回到下标3的位置尝试其他选择,...一直到所有路径都走一遍为止。这个过程类似于遍历下图所示的多叉树,该图中每个节点中逗号前面为下标编号,逗号后面为该节点的值(也就是最多可以向右移动几个门)。最终找到的有效路径有(0, 1, 2, 3, 4, 6)、(0, 1, 2, 4, 6)、(0, 1, 3, 4, 6)、(0, 1, 4, 6)、(0, 2, 3, 4, 6)、(0, 2, 4, 6)、(0, 3, 4, 6)、(0, 4, 6),也就是图中红色节点表示的路径。下面的代码也是回溯法的思路,具体实现略有区别,首先把列表转换为字典,相当于一个有向图的邻接表,然后再利用图论算法来寻找有向图中的路径。每次都向右移动尽可能多的距离,如果无法到达终点就提示“无法跳到最后一个位置”。仍以[5, 4, 3, 2, 2, 0, 3]为例,使用贪心算法时从第1个门直接跳到第6个门掉入陷阱无法移动,游戏失败。如果门后数字分别为[5, 4, 3, 2, 2, 2, 3],从第1个门跳到第6个门,从第6个门跳到第7个门,成功。
使用动态规划算法求解开门寻宝游戏,要求跳跃次数最少,如果有多个解的话返回门编号最小的跳跃方式。使用动态规划算法求解开门寻宝游戏,要求跳跃次数最少,如果有多个解的话返回门编号最大的跳跃方式。关注微信公众号“Python小屋”,在公众号后台发送消息“大事记”可以查看董付国老师与Python有关的重要事件;发送消息“教材”可以查看董付国老师出版的Python系列教材(已累计印刷超过200次)的适用专业详情;发送消息“历史文章”可以查看董付国老师推送的超过1300篇原创技术文章;发送消息“会议”可以查看近期董付国老师的培训安排;发送消息“微课”可以查看董付国老师免费分享的超过700节Python微课视频;发送消息“课件”可以查看董付国老师免费分享的Python教学资源;发送消息“小屋刷题”可以下载“Python小屋刷题神器”,免费练习3857道客观题和776道编程题,题库持续更新;发送消息“编程比赛”了解Python小屋编程大赛详情。