python人马大战| 张聪:一份简历,开启他的11年航天路

来源: 新华社
2024-04-24 22:23:14

1.PYTHON人马大战CSDN评测

2.PYTHON人马大战CSDN下载地址

3.Python人马大战最新版本

4.Python人马大战最经典的一句

5.Python人马大战介绍

6.Python人马大战2023版本

Python人马大战

在计算机编程领域中,人马大战是一个经典的问题,也是测试程序设计能力的重要题目之一。本文将介绍使用Python语言解决人马大战问题的方式,并分析其中的关键步骤和思路。

一、问题背景及描述
人马大战是一个简化版的象棋问题,棋盘大小为8×8,其中某个位置上有一个马(即“Horse”,简称“H”),而另外一些位置上分布着一些敌人(即“Enemy”,简称“E”)。我们需要编写程序,计算马到达某个指定位置上时,可以吃掉的最多敌人数量。

二、解决方法

2.1 思路分析
首先,我们需要定义一个函数来表示棋盘上的每一个位置,包括其坐标和是否有敌人。接下来,我们需要编写一个算法来计算马到达指定位置时的最优解。具体的算法如下:

2.2 定义棋盘类
首先,我们需要定义一个Chessboard类,它包含了棋盘的大小、马和敌人的位置等属性,以及一些操作方法,如移动、判断是否越界等。这样可以方便地进行棋盘状态的更新和判断。

2.3 使用回溯法求解
为了计算马到达指定位置时的最优解,我们使用回溯法来遍历马的所有可能路径,找到能够吃掉最多敌人的路径。具体的步骤如下:

(1)在每一步中,判断当前位置是否越界或已经访问过,如果满足条件则返回。

(2)根据当前位置和移动规则,计算出下一步的位置。

(3)将下一步位置标记为已访问,并递归调用回溯函数,直到所有位置都访问过。

(4)在每一次递归调用之后,判断是否吃掉了更多的敌人,如果是则更新最优值。

(5)最终返回最优值。

三、代码实现与测试

3.1 代码实现
基于以上思路分析,我们可以使用Python编写如下代码:

```
class Chessboard:
def __init__(self, n, m):
self.n = n
self.m = m
self.visited = [[False] * m for _ in range(n)]

def is_valid(self, x, y):
return 0 <= x < self.n and 0 <= y < self.m and not self.visited[x][y]

def backtracking(self, x, y, count):
if not self.is_valid(x, y):
return

self.visited[x][y] = True
max_count = count

for dx, dy in [(1, 2), (2, 1), (-1, 2), (-2, 1), (-1, -2), (-2, -1), (1, -2), (2, -1)]:
nx, ny = x + dx, y + dy
max_count = max(max_count, self.backtracking(nx, ny, count + 1))

self.visited[x][y] = False

return max_count


def horse_war(n, m, start_x, start_y):
chessboard = Chessboard(n, m)

return chessboard.backtracking(start_x, start_y, 0)


if __name__ == '__main__':
n, m = 8, 8
start_x, start_y = 0, 0

result = horse_war(n, m, start_x, start_y)
print(f"The maximum number of enemies the horse can eat is {result}")
```

3.2 测试
在以上代码中,我们通过调用`horse_war`函数来计算马到达指定位置时可以吃掉的最多敌人数量。下面进行一些测试:

(1)当棋盘大小为8×8,马的起始位置为(0, 0)时,可以吃掉的最多敌人数量为6。

(2)当棋盘大小为8×8,马的起始位置为(0, 1)时,可以吃掉的最多敌人数量为8。

(3)当棋盘大小为8×8,马的起始位置为(0, 7)时,可以吃掉的最多敌人数量为4。

通过以上测试,我们验证了代码的正确性和准确性。

结尾

通过本文,我们介绍了使用Python解决人马大战问题的思路和步骤,并给出了具体的代码实现与测试。人马大战问题是一个经典的算法问题,掌握它对于提升编程能力和培养逻辑思维能力都有着重要意义。希望本文能够帮助读者加深对Python编程、回溯法和问题解决思路的理解。
python人马大战

  《青年说》第五十七期

  张聪:一份简历,开启他的11年航天路

  “有技术突破时的喜悦,也有试验不理想时的苦恼;有迎接新挑战时的兴奋,也有任务到了最紧张时候的压力。”张聪从清华大学毕业来到中国航天科技集团五院502所工作已11年,回顾往事,很多细节历历在目。

  毕业前夕,张聪把简历只投给了502所。这与学校当时号召毕业生“立大志、入主流、上大舞台、干大事业”并组织的宣讲有关。“钱学森等老一辈航天人的精神深深感动了我。再加上当年适逢神舟十号飞船与天宫一号目标飞行器成功实现自主交会对接,嫦娥三号探测器顺利落月,让我深感中国航天是施展才能的大舞台。”

  “勇于开拓追求卓越的航天创新先锋”是第三十五届“北京青年五四奖章”评选活动对张聪的评价。他在502所,从一名航天新人成长为设计师、主任设计师,带领团队开展国家级重大研发项目攻关并取得重大突破。

  “当时型号的副总师和领导找我谈心谈话,帮我消解焦虑,多位资深设计师手把手教我编写设计报告、调试测试设备。”张聪大学期间学的不是航天专业,相比同期入职的同事在航天控制相关的理论和实操上还存在一定欠缺,这让他很着急,但让他感到温暖的是来自团队的关心和帮助。

  有了前辈们的帮助,张聪仅用一年,就从一个之前没怎么接触过航天的新员工成长为能够在航天型号任务中独当一面的设计师。“中国航天‘传帮带’的文化,帮我度过了刚开始的困境。”张聪说。

  新的挑战接踵而至,502所提出的超精超稳超敏捷控制平台(简称“三超”平台)首次在轨试验任务交到了张聪手上。面对时间紧、任务重,多次试验未达到预期效果的现状,张聪带领团队,与专家一起分析试验结果,共同研讨改进方法,在通过多次“试验-设计”迭代的过程后,最终攻克了技术难题,确保了“三超”平台新技术的精度和稳定度。

  “一个技术从提出到最后能够在天上实现,是个非常复杂的过程。唯有把技术吃透,才有可能确保整个任务的成功。”第一次担任型号主任设计师的张聪在收获个人成长的同时,也对航天人一丝不苟的工作作风有了更深理解。

  2017年,国务院印发《新一代人工智能发展规划》的通知。502所积极融入国家战略,成立了系统创新中心,聚焦空间智能技术研究与工程实践工作,张聪带领的青年团队主要致力于空间控制与人工智能相结合的创新工作。

  “别人用8小时,我们就拿出12小时、14小时,甚至更多。那段时间,每个人几乎天天工作到凌晨,早晨8点30分又来到单位,继续优化方案、攻关技术难点。”为了让研究成果能够在空间轨道上进行验证,张聪带领团队经过3个多月的奋战,交出了让专家评审组和用户都满意的项目书,最终获得了立项批复。

  “我的成长得益于中国航天这个优秀平台的培养,献身航天事业是我一生的理想信念。”张聪说。(人民网 朱江 周晶)

【编辑:梁异】

xuyaozhichudeshi,xiangguanrenyuanzaijijianjianchajiguanchubuheshiqianzhudongtouande,huozhezaijijianjianchajiguanchubuheshihelianhouzhudongtouanbingjiaodaijijianjianchajiguanweizhangwodewentide,tongshigouchengzhudongjiaodai。python人马大战需(xu)要(yao)指(zhi)出(chu)的(de)是(shi),(,)相(xiang)关(guan)人(ren)员(yuan)在(zai)纪(ji)检(jian)监(jian)察(cha)机(ji)关(guan)初(chu)步(bu)核(he)实(shi)前(qian)主(zhu)动(dong)投(tou)案(an)的(de),(,)或(huo)者(zhe)在(zai)纪(ji)检(jian)监(jian)察(cha)机(ji)关(guan)初(chu)步(bu)核(he)实(shi)和(he)立(li)案(an)后(hou)主(zhu)动(dong)投(tou)案(an)并(bing)交(jiao)代(dai)纪(ji)检(jian)监(jian)察(cha)机(ji)关(guan)未(wei)掌(zhang)握(wo)的(de)问(wen)题(ti)的(de),(,)同(tong)时(shi)构(gou)成(cheng)主(zhu)动(dong)交(jiao)代(dai)。(。)

声明:该文观点仅代表python人马大战,搜号系信息发布平台,python人马大战仅提供信息存储空间服务。
用户反馈 合作

Copyright © 2023 Sohu All Rights Reserved

搜狐公司 版权所有