《程序员的算法趣题》-(日)增井敏克 Python解题 -- (Q08)

《程序员的算法趣题》Q08 优秀的扫地机器人 《程序员的算法趣题》Q08 优秀的扫地机器 第一次写博客,请多见谅。 目前在看图灵程序设计丛书绝云译的《程序员的算法趣题》,书中是用Ruby实现的。因为没学过Ruby,只能大致理解。python也是刚入门,感觉网上的答案有点难理解,自己尝试写了一个比较初级的代码。 问题描述 现在有很多制造商都在卖扫地机器人,可是这些机器人有时候会反复清扫某一个地方。假设有一款机器人不会反复清扫同一个地方,它只能前... 阅读详情

《程序员的算法趣题》-(日)增井敏克 , 书中为69 道数学谜题编写了解题程序, 编程语言为:Ruby,JavaScript,C语言。有兴趣的同学,可以购书阅读~

在此更新个人编写的Python版,仅供学习使用。(运行环境:Python3.6)

Q08 优秀的扫地机器人
    假设有一款不会反复清扫同一个地方的机器人,它只能前后左右移动。举个例子,如果第 1 次向后移动,那么连续移动 3 次时,就会有以下 9 种情况。又因为第 1 次移动可以是前后左右 4 种情况,所以移动 3 次时全部路径有 9×4 = 36 种。 
                             

问题
       求这个机器人移动 12 次时,有多少种移动路径?

walk_steps = 12

directions = [(-1, 0), (1, 0), (0, -1), (0, 1)]
all_footprint = [[(0, 0)]]
for i in range(walk_steps):
    all_new_footprint = []
    while len(all_footprint) > 0:
        cur_footprint = all_footprint.pop()
        for direction in directions:
            next_step = (cur_footprint[-1][0] + direction[0], cur_footprint[-1][1] + direction[1])
            if next_step in cur_footprint:
                continue
            else:
                all_new_footprint.append(cur_footprint + [next_step])
    all_footprint = all_new_footprint[:]
    
print('有%s种移动路径' % len(all_footprint))

运行结果:

            有324932种移动路径

程序员的算法趣题.pdf.zip 面试算法题 立即下载

相关推荐

程序员算法趣题——随书源码

《程序员算法趣题》随书的课后源码。作者是增井敏克。

每周一道算法题010:扫地机器人路径统计

问题: 假设有一款不会反复清扫同一个地方的机器人,它只能前后左右移动。举个例子,如果第1次向后移动,那么连续移动3次时,就会有以下9种情况(图6)。又因为第1次移动可以是前后左右4种情况,所以移动3次时全部路径有9×4=36种。 求这个机器人移动12次时,有多少种移动路径? 思路: 尝试用递归和非递归两种办法来解。 递归思路:从起点开始,在各方向移动1步,如果移动后的点不在当前的路径中,就加入到...

baoli1912的博客 1239

【2023版】基于JT808/JT1078协议的车载视频监控平台开发实战-开源架构解析

本文详细解析了基于JT808/JT1078协议的车载视频监控平台开发实战,涵盖协议核心作用、开源架构设计、开发避坑指南及二次开发建议。重点介绍了JT1078协议在音视频传输中的优化方案,以及海量位置数据存储、高可用架构等关键技术点,为开发者提供全面的实战参考。

weixin_26965807的博客 236

程序员的算法趣题Q08: 优秀的扫地机器人

程序员的算法趣题Q08解题分析和python代码

chenxy_bwave的专栏 853

微软Media Creation Tool 创建工具 1.3 升级:支持全新下载安装Win11 22H2 Build 22621.525

微软 Media Creation Tool 创建工具 1.3 升级:支持全新下载安装 Win11 22H2 Build 22621.525 ISO 镜像,如果今天运行使用 Media Creation Tool,则会下载 Windows 11 2022 版本 Build 22621.525,它不会向操作系统添加任何新内容,但会修复安装问题,下面来看看详细的更新内容。

zym0218的博客 4231

斑马打印机状态监控进阶:不用SDK也能获取打印状态的3种野路子

本文介绍了三种不依赖官方SDK的斑马打印机状态监控方法,包括SGD命令、TCP端口嗅探和共享打印机日志分析。这些方案适用于老旧系统或网络受限环境,帮助运维人员实时掌握打印状态,提升设备管理效率。特别适合工业自动化和物流仓储场景中的应急处理。

weixin_42628688的博客 427

程序员的算法趣题:Python全解(2023-03-07:追加github repo)

本系列(将)包含《程序员的算法趣题》(增井敏克著,绝云译)中所有问题的详细分析和Python解答。原书使用Ruby/Javascript实现,看不懂(????)。较复杂的问题的解说也受限于书的篇幅以及不同的人的思维模式的不同,不容易跟得上书中的解说。归根结底还是以独立自主完全想清楚写出可行代码并验证通过才能达成最好的学习效果,在此过程中所走的所有弯路所陷入的坑都可以转变为经验教训。即便有时候算法不够好运行效率不够高也无妨,因为毕竟这才是真正属于自己的。

chenxy_bwave的专栏 2110

解锁RK3588视觉潜能:RGA硬件加速库实战指南

本文深入探讨了如何利用RK3588芯片内置的RGA硬件加速库,解决视觉应用中图像预处理的性能瓶颈。通过实战指南,详细介绍了RGA库在YUV转RGB、图像缩放等核心操作上的应用,相比CPU软处理可大幅降低延迟与CPU占用,从而充分释放RK3588的NPU算力,构建高效的AI视觉预处理流水线。

zeta9的博客 669

几个简单而又有趣的Python算法题

1. 前言 作为一个合格的程序员,如果仅仅只是对工具或者框架熟悉,而不清楚算法,这肯定不是一个合格的,能够经得起时间考验的程序员。如果把程序员比作是一个武林高手,那么他的算法能力就是他的内功,只有内功修炼深厚了,学习框架,语言或者工具等才会快,并且能够真正的理解他们的用法。作为一个半路出家的低端程序员,为了锻炼自己的算法能力,于是决定在leetcode上刷题来提高自己。就这段时间以来我所遇到的一...

qq_40056626的博客 1万+

华为OD机考真题 新系统 - 数列求值(Java/Py/C/C++/Js/Go)

华为OD机试真题 新系统【数列求值】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【数列求值】多语言题解。

qq_45776114的博客 664

Cursor使用教程:用 Cursor 创建第一个 Java 项目

Cursor是一款基于VS Code的AI编程编辑器,专为开发者设计。安装前需确保JDK 8+、Maven 3.8+等环境配置,支持Windows系统。编辑器提供中文界面选项,可通过扩展市场安装语言包。创建Java项目支持手动和AI提示词两种方式:手动需创建目录结构并编写代码;AI方式则通过自然语言描述快速生成项目框架和代码。标准Java项目包含src/main/java主代码目录、src/test/java测试目录及pom.xml等配置文件。Maven项目中,pom.xml是核心配置文件,管理项目依赖与构

博客 3547

《程序员的算法趣题》-(日)增井敏克 Python解题 -- (Q05)

《程序员的算法趣题》-(日)增井敏克 , 书中为69 道数学谜题编写了解题程序, 编程语言为:Ruby,JavaScript,C语言。有兴趣的同学,可以购书阅读~ 在此更新个人编写的Python版,仅供学习使用。(运行环境:Python3.6) Q05 还在用现金支付吗     当下,坐公交或者地铁时大部分人都是刷卡的。不过,时至今日还在用现金支付的人还是比想象的多。本题我们以安置在公交上的...

cloudly89的专栏 332

安装Office程序时无法安装的解决方案

本文主要介绍了安装Office程序时无法安装的解决方案,希望能对安装Office的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案 2.1 前置步骤 2.2 方法一 2.3 方法二

weixin_43178406的博客 15万+

《程序员的算法趣题》-(日)增井敏克 Python解题 -- (Q09)

《程序员的算法趣题》-(日)增井敏克 , 书中为69 道数学谜题编写了解题程序, 编程语言为:Ruby,JavaScript,C语言。有兴趣的同学,可以购书阅读~ 在此更新个人编写的Python版,仅供学习使用。(运行环境:Python3.6) Q09 落单的男女     人们聚集在某个活动会场上,根据到达会场的顺序排成一排等待入场。假设你是活动的主办人员,想把人们从队列的 某个位置分成两...

cloudly89的专栏 336

Android Activity面试题最全解析(5万字长文)

Intent是Android中用于启动活动、服务或广播的一种消息对象。它包含了一系列键值对数据,用于描述操作的目的以及需要传递的信息。IntentString:字符串intfloatlong:基本数据类型Parcelable:实现了Parcelable接口的对象:实现了接口的对象示例代码如下:Java深色版本1// 创建Intent并传递数据");67// 启动新的Activity是一个XML标签,用于定义ActivityService或可以响应的Intent类型。它包含了。

大模型大数据攻城狮的专栏 802

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

《程序员的算法趣题》-(日)增井敏克 Python解题 -- (Q10)

《程序员的算法趣题》-(日)增井敏克 , 书中为69 道数学谜题编写了解题程序, 编程语言为:Ruby,JavaScript,C语言。有兴趣的同学,可以购书阅读~ 在此更新个人编写的Python版,仅供学习使用。(运行环境:Python3.6) Q10 轮盘的最大值       流传较广的轮盘数字排布和设计有“欧式规则”和“美式规则”两种。下面我们要找出在这些规则下,“连续 n 个数字的和...

cloudly89的专栏 301

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

《程序员的算法趣题》-(日)增井敏克 Python解题 -- (Q15)

《程序员的算法趣题》-(日)增井敏克 , 书中为69 道数学谜题编写了解题程序, 编程语言为:Ruby,JavaScript,C语言。有兴趣的同学,可以购书阅读~ 在此更新个人编写的Python版,仅供学习使用。(运行环境:Python3.6) Q15 走楼梯     A上楼梯时, B 从同一楼梯往下走。每次不一定只走 1 级,最多可以一次跳过 3 级(即直接前进 4 级)。但无论走多少级...

cloudly89的专栏 313

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

《程序员的算法趣题》-(日)增井敏克 Python解题 -- (Q14)

《程序员的算法趣题》-(日)增井敏克 , 书中为69 道数学谜题编写了解题程序, 编程语言为:Ruby,JavaScript,C语言。有兴趣的同学,可以购书阅读~ 在此更新个人编写的Python版,仅供学习使用。(运行环境:Python3.6) Q14 世界杯参赛国的国名接龙     2014 年 FIFA 世界杯的 32 个参赛国                            ...

cloudly89的专栏 367

《程序员的算法趣题》-(日)增井敏克 Python解题 -- (Q13)

《程序员的算法趣题》-(日)增井敏克 , 书中为69 道数学谜题编写了解题程序, 编程语言为:Ruby,JavaScript,C语言。有兴趣的同学,可以购书阅读~ 在此更新个人编写的Python版,仅供学习使用。(运行环境:Python3.6) Q13 有多少种满足字母算式的解法     所谓字母算式,就是用字母表示的算式,规则是相同字母对应相同数字,不同字母对应不同数字,并且第一位字母的...

cloudly89的专栏 298

《程序员的算法趣题》-(日)增井敏克 Python解题 -- (Q24)

《程序员的算法趣题》-(日)增井敏克 , 书中为69 道数学谜题编写了解题程序, 编程语言为:Ruby,JavaScript,C语言。有兴趣的同学,可以购书阅读~ 在此更新个人编写的Python版,仅供学习使用。(运行环境:Python3.6) Q24 完美的三振出局     对喜爱棒球的少年而言,“三振出局”是一定要试一次的。这是一个在本垒上放置 9 个靶子,击打投手投来的球,命中靶子的...

cloudly89的专栏 323

《程序员的算法趣题》-(日)增井敏克 Python解题 -- (Q25)

《程序员的算法趣题》-(日)增井敏克 , 书中为69 道数学谜题编写了解题程序, 编程语言为:Ruby,JavaScript,C语言。有兴趣的同学,可以购书阅读~ 在此更新个人编写的Python版,仅供学习使用。(运行环境:Python3.6) Q25 鞋带的时髦系法     如图所示的这几种依次穿过 12 个鞋带孔的系法很有名(这里不考虑鞋带穿过鞋带孔时是自外而内还是自内而外)。   ...

cloudly89的专栏 318

《程序员的算法趣题》-(日)增井敏克 Python解题 -- (Q18)

《程序员的算法趣题》-(日)增井敏克 , 书中为69 道数学谜题编写了解题程序, 编程语言为:Ruby,JavaScript,C语言。有兴趣的同学,可以购书阅读~ 在此更新个人编写的Python版,仅供学习使用。(运行环境:Python3.6) Q18 水果酥饼日     日本每月的 22 日是水果酥饼日。因为看日历的时候, 22 日的上方刚好是 15 日,也就是“‘22’这个数字上面点缀...

cloudly89的专栏 369

《程序员的算法趣题》-(日)增井敏克 Python解题 -- (Q22)

《程序员的算法趣题》-(日)增井敏克 , 书中为69 道数学谜题编写了解题程序, 编程语言为:Ruby,JavaScript,C语言。有兴趣的同学,可以购书阅读~ 在此更新个人编写的Python版,仅供学习使用。(运行环境:Python3.6) Q22 不缠绕的纸杯电话      绳子连接纸杯制作“纸杯电话”——这应该勾起了很多人对理科实验的回忆。如果把绳子拉直,对着一边的纸杯讲话,声音就可...

cloudly89的专栏 358

《程序员的算法趣题》-(日)增井敏克 Python解题 -- (Q26)

《程序员的算法趣题》-(日)增井敏克 , 书中为69 道数学谜题编写了解题程序, 编程语言为:Ruby(为主),JavaScript,C语言。有兴趣的同学,可以购书阅读~ 在此更新个人编写的Python版,仅供学习使用。(运行环境:Python3.6) Q26 高效的立体停车场     立体停车场可以充分利用窄小的土地,通过上下左右移动来停车、出库,从而尽可能多地停车。     现在有一...

cloudly89的专栏 291

《程序员的算法趣题》-(日)增井敏克 Python解题 -- (Q19)

《程序员的算法趣题》-(日)增井敏克 , 书中为69 道数学谜题编写了解题程序, 编程语言为:Ruby,JavaScript,C语言。有兴趣的同学,可以购书阅读~ 在此更新个人编写的Python版,仅供学习使用。(运行环境:Python3.6) Q19 朋友的朋友也是朋友吗     “六度空间理论”非常有名。大概的意思是 1 个人只需要通过 6 个中间人就可以和世界上任何 1 个人产生间接...

cloudly89的专栏 274

《程序员的算法趣题》-(日)增井敏克 Python解题 -- (Q04)

《程序员的算法趣题》-(日)增井敏克 , 书中为69 道数学谜题编写了解题程序, 编程语言为:Ruby,JavaScript,C语言。有兴趣的同学,可以购书阅读~ 在此更新个人编写的Python版,仅供学习使用。(运行环境:Python3.6) Q04 切分木棒     假设要把长度为 n 厘米的木棒切分为 1 厘米长的小段,但是 1 根木棒只能由 1 人切分,当木棒被切分为 3 段后,可...

cloudly89的专栏 274
上一篇: 《程序员的算法趣题》-(日)增井敏克 Python解题 -- (Q07)
下一篇: 《程序员的算法趣题》-(日)增井敏克 Python解题 -- (Q09)
JemmaLiu
博客等级 码龄15年 9粉丝 31原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值