中国象棋将帅问题

【开源~磁悬浮】零代码,纯硬件闭环:从霍尔到H桥的磁悬浮稳定术 本文详细介绍了如何不依赖任何代码,仅通过模拟和数字电路的组合,实现一个完整的磁悬浮闭环控制系统。从霍尔传感器检测位置,到运放电路进行信号调理与模拟PID控制,再到H桥驱动电磁铁执行纠偏,全程使用基础电子元器件搭建。文章深入剖析了系统原理、电路设计、调试技巧与实践经验,展现了纯硬件实现自动控制的独特魅力与挑战。 阅读详情

一、问题:

    在一把中国象棋的残局中,只剩下双方的“将”和“帅”,二者都只能在一个3*3的正方形区域内活动,二者不能面对面,也就是二者不能在同一纵向直线上。

    请写出一个程序,输出二者所有的合法位置。要求在代码中只能使用一个字节存储变量。

             如图:

二、书中的解法

本题本身的难点就在只是用一个字节来存储变量,其余的思路是很简单的。

:遍历A的位置

:遍历B的位置

:判断A、B的位置是否合法

:如果满足则输出

书中为A、B的位置信息转化为了一个逻辑坐标系统,如图所示:

然后就可以根据A、B的需要进行模余运算来判断A、B是否在一条纵向直线上,比如如果A是7,B是1二者对3取余得出的结果都是1,说明二者都在第一条纵向直线上,不合法。

那么还有一个关键的问题是二者的位置信息需要放在一个字节变量中。

由于一个字节是八位二进制,书中的方法是A、B各占前后四位用来存储1~9的位置信息。

采用移位运算和与运算求出A、B的位置信息,比如变量是00111001,把其和11110000进行与运算,保留了前四位得出00110000,然后右移四位得出A为0011=3,说明A是3号位置,同样把变量和00001111进行与运算之后直接得出结果是00001001=9,说明B是9号位置。

由于优快云编辑太麻烦了,直接写在纸上拍下来了,将就着看吧:

三、自己的解法

我的想法是这样的,这个将和帅的位置其实是对称的,我何不如直接用4个bit来存储呢?其实到最后实际还是用了8位,具体请看:

字体写的不好看,请担待吧,真是累坏了,不过很高兴,如果有什么地方有错误,欢迎指出!









基于STM32设计的老人摔倒检测报警系统(OneNet+MQTT)(235) 基于STM32设计的老人摔倒检测报警系统,不仅能够实时监测老人的位置信息,方便在紧急情况下快速定位,还能通过陀螺仪模块精确检测老人的身体姿态,一旦判断为摔倒状态,系统将立即触发蜂鸣器报警,并通过4G网络向指定联系人发送短信警示,确保老人能够迅速得到援助。此外,系统还支持老人主动按下设备上的按键发送求助短信,增强了系统的灵活性和实用性。 阅读详情

相关推荐

量化实战:如何用Barra多因子模型给你的投资组合做一次‘风险体检’?

本文详细介绍了如何利用Barra多因子模型对投资组合进行全面的风险体检,帮助投资者识别行业和风格因子的风险暴露。通过实战案例和Python代码示例,展示了数据采集、风险归因和组合优化的完整流程,提升投资组合的风险调整收益。

weixin_27215337的博客 323

面试真题:中国象棋将帅问题

BOPGroup的专栏 3448

Dataworks实现接口调用

在本地linux虚拟机(不用在意linux版本),安装Anaconda后配置对应的虚拟环境,将虚拟环境的python包整体打包(路径一般为:~/anaconda/envs/env_name/lib/pyyhon3.7/site-packages):上传资源,将第三方包上传至dataworks(注意:所有上传文件均要打包上传,直接上传文件会乱码导致无法使用):PyODPS,其中PyODSP2的python版本为2.7,PyODSP3的python版本为3.7。:在PyODPS中引用资源,然后开发接口。

hutc_Alan的博客 1680

面试题:中国象棋将帅问题

中国象棋将帅问题(输出所有将帅的合法位置)我们看一下怎么来看将和帅的位置,来比较她们两的位置是否会冲突我们用数字1~9来标记棋子的位置然后进行比较A=将,B=帅本题的难点其实是在如何使用一个变量来保存这一个将,还有另一个帅的位置第一种方法那我们其实可以这样,我们可以使用一个8个比特的变量来保存这两个数据,前四个比特来保存A的位置,后四个比特来保存B的位置四个比特刚好可以保存2^4=16个数字而我们...

呼的一声飞得好远好远 568

NOAA气象数据下载攻略

各方搜寻气象数据下载途径,发现网上最多的就是从NOAA下载,但是中途有尝试过很多次都没有下载到,每次都是显示不可用,今天终于下载成功了,特此记录。 首先我是从这个网址进入的:National Centers for Environmental Information (NCEI) formerly known as National Climatic Data Center (NCDC) | NCEI offers access to the most significant archives of oc

lianqian66的博客 3万+

QTableView为例:Qt模型视图委托(MVD)(Model-View-Delegate)

QT中的MVD(模型-视图-委托)模式是一种类似于MVC的设计模式,将数据、界面和交互逻辑分离。模型负责数据管理,视图负责显示界面,而委托则嵌入在视图中处理数据的显示和编辑。QT提供了多种视图组件(如QListView、QTreeView、QTableView)和模型类(如QStandardItemModel、QAbstractItemModel),支持数据的多样化呈现。委托(Delegate)通过定制显示和编辑行为增强了视图的灵活性。该模式适用于各类数据结构展示(列表、表格、树形),能够高效处理数据与界面

菜一头包的博客 1988

使用H5编写网页版象棋(源码)

<!DOCTYPE html> <html> <head> <title>中国象棋-canvas动画-前端技术-关尔先生</title> <meta name="keywords" content="中国象棋,原生js,canvas动画,沙拉小姐,关尔先生" /> <meta name="description" content="关尔先生用canvas动画和原生js写的中国象棋对战" />

Bug_money的博客 1万+

深度学习入门:一文详解BP神经网络

在BP神经网络中,输入层和输出层的节点个数都是确定的,而隐含层节点个数不确定,那么应该设置为多少。实际上,隐含层节点个数的多少对神经网络的性能是有影响的,有一个经验公式可以确定隐含层。上面是对隐含层和输出层之间的权值和输出层的阀值计算调整量,而针对输入层和隐含层和隐含层的阀值调。在BP神经网络中,输入层节点没有阀值。神经网络,神经网络在机器学习中应用比较广泛,比如函数逼近,模式识别,分类,数据压缩,数据。要求输入模式要有足够的随机性,对输入模式的噪声比较敏感,即对于剧烈变化的输入模式,训。

Machine Learning with Tutors 4万+

中国象棋程序的设计与实现–楚汉棋兵(高级版)(源码)

本篇将正式公布 中国象棋程序–高级版–楚汉棋兵 的所有源码。介绍一些相关信息,如源码下载地址、QQ交流群、源码结构、版权声明。其它更多文档,如 毕业设计论文、项目架构图图、心得体会、开发记录,将在本月全部公布。 有兴趣的同学,可以趁着 中秋节3天、国庆7天等假期,进行研究。我也将抽空选择性地回答一些问题。 源码注释比较多,不懂的可以在群里交流。 源码下载 a. 中国象棋...

ithome 859

从权限对象到业务角色:把 SAP Authorization Object 讲清楚,并用 ABAP 写对一次 AUTHORITY-CHECK

摘要:SAP权限管理的核心在于Authorization Object(授权对象),它通过组合最多10个授权字段来精确控制用户访问权限。关键要点包括:1) 授权对象与ACTVT字段(如01创建/02修改/03显示)的配合使用;2) ABAP中AUTHORITY-CHECK语句的四种常见返回码(0通过/4字段不匹配/12无权限/40无效用户);3) 系统自动执行的S_TCODE事务码检查;4) 自定义授权对象时应遵循"最少且足够"原则,优先复用标准对象。在RAP和OData场景中,权限检查

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 261

[deprecated]第二章:DRM 框架概述:2.2 GEM显存管理概述

本文深入分析了Linux DRM子系统中GEM(Graphics Execution Manager)的显存管理机制。GEM通过核心数据结构drm_gem_object抽象显存buffer,结合drm_vma_offset_manager和drm_mm实现高效的地址空间分配与管理。该系统支持显存动态分配/回收、用户空间mmap映射、多进程访问隔离和跨设备共享等关键功能,并通过引用计数和同步机制确保并发安全。

图形/计算GPU的驱动与虚拟化技术分享园地 2536

【编程之美】中国象棋将帅问题

问题描述在中国象棋里将和帅是不能碰面的,如下图所示,当将位于d10时,帅就不能在d1,、d2、d3。请写一个程序,输出将、帅所有的合法位置。要求在代码中仅用一个变量。 如果只是输出将、帅的合法位置,那这题就比较容易了,只要二重循环判断一下就行,但后面一个条件就将题目的难度上升了好多。算法分析因为是判断两个对象A、B的位置符不符合要求,而且每个对象一共就只有9个位置可选,可以比较快地想到程序的大体框

zgljl2012的专栏 4415

MediaPipe 教程:从安装到应用-全网最全

MediaPipe是Google推出的开源框架,专为构建机器学习管道设计,可以高效处理视频、音频等时间序列数据。本文教程从安装到应用逐步讲解: 安装步骤简单,只需通过pip安装mediapipe包并验证版本; 重点演示人体姿态检测功能,可识别33个身体关键点; 提供基础代码实现,包括视频捕获、关键点检测与可视化; 强调模块化开发,将功能封装成类以提高代码复用性。 教程适合初学者,通过清晰指引和实用代码示例,帮助快速实现计算机视觉应用。

FJN110的博客 1563

中国象棋将帅问题java_编程之美:中国象棋将帅问题

Author: Fox晚上没有加班,打游戏打到9点过,后面就又看了一道《编程之美》的题目《中国象棋将帅问题》。题目:下过中国象棋的朋友都知道,双方的“将”和“帅”相隔遥远,并且它们不能照面。在象棋残局中,许多高手能利用这一规则走出精妙的杀招。假设棋盘上只有“将”和“帅”二子(如图1-3所示)(为了下面叙述方便,我们约定用A表示“将”,B表示“帅”):A、B二子被限制在己方3×3的格子里运动。例如,...

weixin_42445142的博客 201

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

中国象棋的将帅问题

问题描述: 在中国象棋规则中,将和帅规定只能在田字格中移动,且将和帅是不能碰面的,请求解出所有可能的符合规则的将帅位置。 限制条件: 只能使用一个字节的变量 问题解答:

江湖小小生 3836

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

中国象棋将帅问题java_编程之美读书笔记1.2——中国象棋将帅问题

http://blog.youkuaiyun.com/pipisorry/article/details/36380669问题:下过中国象棋的朋友都知道,双方的“将”和“帅”相隔遥远,并且它们不能照面。在象棋残局中,许多高手能利用这一规则走出精妙的杀招。假设棋盘上只有“将”和“帅”二子(如图1-3所示)(为了下面叙述方便,我们约定用A表示“将”,B表示“帅”):A、B二子被限制在己方3×3的格子里运动。例如,...

weixin_39785286的博客 180

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

中国象棋将帅问题(一)

题记——开始学习编程之美,第一次写博客记录自己的编程心得,希望自己不断进步,做一个踏实的codeman。通过博客能够记录每次的编程体会,将一些重要的知识点进行标注,便于日后查看复习。如果,有朋友能够从我的博客中获得自己想要的东西我也会非常的开心。与大家共勉吧,编程是一个不断积累的过程! 好的,言归正传,今天看了两个问题,一个是“让cpu占用率曲线听你指挥”(但是没太明白,需要恶补

Bruceyeyiling的专栏 796

中国象棋将帅问题java_中国象棋将帅问题

问题:输出中国象棋将帅所有合法位置,且只能用一个字节存储变量。分析:此问题的本质是搜索、剪枝,只用一个字节存储变量,意义是要进行位运算,或者用C语言中结构体变量中设定的可以使用结构体变量的低4位或者高四位。互斥的条件是:不能再同一列即可。第一步:将问题形式化,给这9个位置编号,这是重要的,类似于表征问题的解空间。第二步:用位或者结构体变量,或者直接根据数字特征来剪枝解空间。位运算中往往要用到逻辑运...

weixin_39999536的博客 211

《编程之美》读书笔记(一):中国象棋将帅问题

 《编程之美》读书笔记(一):中国象棋将帅问题    作者:薛笛   EMail:jxuedi#gmail.com    千呼万唤始出来,在跳票了快一个月之后,虽然明知道书里还有不少错误没改过来(附了一整页的勘误),但是感觉已经不能等下一版了。赶快去书店买回来,吃完饭躺床上舒舒服服地看。大致翻看之后,总体感觉是书中的内容没有“脱离群众”,很多都是我们平时生活、工作中经常能遇到的。题目不见得难,基本

薛笛的专栏 1万+

编程之美 1.2 中国象棋将帅问题

编程之美 1.2 中国象棋将帅问题 版权所有, 禁止转载, 如有需要, 请站内联系. 本文地址:http://blog.youkuaiyun.com/caroline_wendy 题目: A表示“将”, B表示“帅”, 请写出一个程序输出A, B所有合法位置, 使用一个字节存储变量. 答案: 输出一些互斥的组合, 可以抽象为: 即: 1, 4, 7 除

AGI 4078

《编程之美》——中国象棋将帅问题

即将面临找工作,最近在看《编程之美》这本书。自己能力有限所以觉得有些题目难度不小,但仍觉受益匪浅,有时间一定再读几遍。下面是关于“中国象棋将帅问题”的一些心得:              书中给出的算法的精妙之处这里不再赘述,给出自己的想法: 原理与书中给出算法相同,通过循环实现。对其中的任意一个位置k,其余8个位置都可以用k与1到8这8个数字的和对9取模来表示(其中和为0的情况要特殊处理)。

GJYSM1987的专栏 784

编程之美:中国象棋将帅问题解法二

编程之美中国象棋将帅问题,解法二书中代码如下: 我觉得书上这么写不便于理解,所以稍微修改了一下: 变量i的变化范围是闭区间[0, 80],总共81个数,分成9组,每组9个数。 第1组[0, 8], 第2组[9, 17],...第9组[72, 80]。第1组中的任意一个数i/9都得0,但是%9则可以取[0, 8]的每一个数;第2组i/9都得1,%9则可以取[0, 8]的每一个数

小小浪迹天涯的专栏 620

1.2中国象棋将帅问题

1.2中国象棋将帅问题 参考《编程之美–1.2 中国象棋将帅问题》 问题描述: 中国象棋中将帅均只能在九宫格内移动,象棋残局往往通过将帅的走位来翻盘,用A表示将,用B表示帅,若A、B不在同一纵线上则为合法,要求输出A、B所有合法的位置,兵棋在代码只能用一个字节来存储变量。 问题分析: 大体上解法是遍历A、B的位置,判断A、B位置是否满足要求,并输出。难点在于如何用一个字节存储A、B两个点的位置。 ...

quekai01的博客 427
上一篇: 机器学习的可行性(四)
下一篇: 训练和测试的区别(五)
云金
博客等级 码龄11年 11粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值