首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >分支因子和深度

分支因子和深度
EN

Stack Overflow用户
提问于 2016-04-18 08:55:26
回答 2查看 753关注 0票数 1

问题 一个简单的两人游戏涉及一堆N火柴和两个有交替轮回的玩家。在每一回合中,玩家从堆中移除1根、2根或3根火柴。移除最后一根火柴的玩家输掉了比赛。 A)游戏树的分支因子和深度是什么(给出一个用N表示的通解)?搜索空间有多大? B)游戏中有几个独特的状态?对于大N,怎样才能使搜索更有效?

答案

A)我说分枝因子是3,但我证明了这一点,因为玩家只能移除3场比赛,这意味着我们的树通常会有三个孩子。第二部分是关于深度,我不太清楚。

B) Nx2,其中N是剩余的匹配数。我不知道怎样才能让搜索更有效率?或者引入α-β剪枝?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-18 09:40:13

答:就深度而言,想象一下最长的游戏会是什么样子。这是一个游戏,由两名球员组成,每个回合只有1场比赛。由于有n个匹配,这样的游戏将轮流进行:树有n个深度。

B:只有2个*N状态,每个状态都可以从3个较高的火柴计数状态访问。由于匹配的数量必然会随着游戏的进行而减少,所以可能的状态图是DAG (有向无圈图)。因此,可以用动态规划方法来分析这个游戏。最后,您将看到最优移动仅取决于N mod 4,剩余匹配数为N。

编辑:证明的想法N mod 4:每个职位要么是一个输赢的立场或一个胜利的立场。失去位置是一种情况,无论你玩什么,如果你的对手发挥得最好,你就会输。同样地,一个胜利的位置是一种情况,如果你发挥正确的移动,对手不可能赢。N=1是一个失败的位置(根据游戏的定义)。因此,N=2,3,4是获胜的位置,因为通过移除正确的匹配量,您将对手置于一个失败的位置。N=5是一个失败的位置,因为不管你删除了多少个匹配项,你都会把对手放在一个获胜的位置。N=6,7,8是赢家.你知道这个主意。

现在,这只是一个正式的证明:假设一个位置N是一个丢失的位置当且仅当N mod 4 = 1。如果在某些整数k上这样做是正确的,那么您可以证明k+1是正确的。正如我们前面所展示的那样,这对于k = 4来说是正确的。通过递归,对任何N都是正确的。

票数 1
EN

Stack Overflow用户

发布于 2016-04-18 09:15:24

游戏的状态在任何时候都可以用谁的回合和每个玩家举行的比赛次数来描述。在n个移动之后,有3^n可能的历史,但是对于大的n,许多小于3^n的可能状态,所以您可以节省时间,例如,通过识别您即将遇到一个您已经遇到的状态并计算出以前的值。

也请参阅https://en.wikipedia.org/wiki/Nim --如果这是Nim,或者是各种Nim,那么已经为它制定了有效的策略。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36699937

复制
相关文章
php-fpm开启opcache缓存
比较奇怪的是今天的访问量到了500以下,想测试下是哪个地区无法访问,结果打开测速网站,网站直接挂了,所有地区全红,cpu内存跑满。于是想着优化下php的执行,开启代码缓存:
obaby
2023/03/27
2K0
php-fpm开启opcache缓存
lnmp 开启 Opcache 脚本缓存提高 php 性能
lnmp 开启 Opcache 脚本缓存可以提高 php 运行性能,进而提高整体服务器的运行效率。Opcache 是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件。今天魏艾斯博客尝试开启这个组件,并希望能够提高 php 性能,因为是第一次尝试,后面经过一段时间服务器运行后再来汇报结果。 为了提高 linux 服务器的运行速度和网站的打开速度,魏艾斯博客前期进行了各种尝试,从各种 wordpress 缓存插件开始折腾,后来发现各种 wordpress 缓存插件在博客流量低(1000IP)的时候,
魏艾斯博客www.vpsss.net
2018/07/04
9030
lnmp 开启 Opcache 脚本缓存提高 php 性能
lnmp 开启 Opcache 脚本缓存可以提高 php 运行性能,进而提高整体服务器的运行效率。Opcache 是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件。今天魏艾斯博客尝试开启这个组件,并希望能够提高 php 性能,因为是第一次尝试,后面经过一段时间服务器运行后再来汇报结果。
魏艾斯博客www.vpsss.net
2018/06/28
1.5K0
lnmp 开启 Opcache 脚本缓存提高 php 性能
PHP Opcache的工作原理
PHP项目中,尤其是在高并发大流量的场景中,如何提升PHP的响应时间,是一项十分重要的工作。
码农编程进阶笔记
2021/07/20
1.2K0
PHP Opcache的工作原理[通俗易懂]
PHP项目中,尤其是在高并发大流量的场景中,如何提升PHP的响应时间,是一项十分重要的工作。
全栈程序员站长
2022/07/11
9370
PHP Opcache的工作原理[通俗易懂]
PHP Opcache工作原理
在理解 OPCache 功能之前,我们有必要先理解PHP-FPM + Nginx 的工作机制,以及PHP脚本解释执行的机制。
猿哥
2019/11/10
1.5K0
PHP性能加速: OPcache
虽然是老生常谈,还是想在此记录一下。 之前在开发环境的服务器上也遇到过此问题,为何明明在服务器上已经修改了代码,但就是不生效!? 有可能就是因为开启了OPcache,线上环境为了加速PHP性能(线上开启此扩展是很有必要的),开启了此配置,然而在开发环境上代码时常发生修改,需要注意这个配置(开发环境甚至可以关闭),以避免发生上述问题。
lukachen
2023/10/22
3190
使用OPCache提升PHP的性能
对于 PHP 这样的解释型语言来说,每次的运行都会将所有的代码进行一次加载解析,这样一方面的好处是代码随时都可以进行热更新修改,因为我们不需要编译。但是这也会带来一个问题,那就是无法承载过大的访问量。毕竟每次加载解析再释放,都会增加 CPU 的负担,通常一台 8核16G 的服务器在2、3000并发左右 CPU 就能达到60%以上的使用率。而且如果你使用的是类似于 Laravel 这种大型的框架,效率将更加低下。这个时候,我们通常会通过增加服务器数量来做负载均衡,从而达到减轻服务器压力的效果。不过,这样做的成本又会增加许多。那么,有没有什么优化的方案呢?
硬核项目经理
2020/08/13
1.1K0
PHP - 性能优化 - 开启Opcache
对于PHP、Python属于解释型语言,不产生机器码,而是产生中间码(中间码是不能直接执行,这个中间码只有解释器可以识别到,中间码要靠解析器来进行执行) PHP的解析器是Zend,PHP使用Zend引擎,中间码我们也称作为操作码(opcode)
九霄道长
2021/03/02
1.4K0
PHP开启opcache提升代码性能
配置指令如下: [opcache] zend_extension=opcache.so opcache.enable_cli=1 ;共享内存大小, 这个根据你们的需求可调 opcache.memory_consumption=256 ;interned string的内存大小, 也可调 opcache.interned_strings_buffer=8 ;最大缓存的文件数目 opcache.max_accelerated_files=4000 ;60s检查一次文件更新 opcache.reval
luxixing
2019/05/30
8340
php7性能优化之opcache
最近业务有所增长,随之而来的是慢请求逐渐多了起来,在搜索php性能优化的过程中发现了opcache,相关的文章很多,但是都比较零碎,所以在此做个总结。公司当前使用的PHP版本为php7.x.x。
阿dai学长
2021/07/15
1.5K0
[笔记] 使用 opcache 优化生产环境PHP
OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。
码农编程进阶笔记
2021/07/20
8260
[笔记] 使用 opcache 优化生产环境 PHP
OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。
全栈程序员站长
2022/07/11
4210
php5.6安装Zend Opcache扩展
假设php5.6安装路径为/data2/php [root@nextcloud src]# pwd /usr/local/src [root@nextcloud src]# wget http://pecl.php.net/get/zendopcache-7.0.5.tgz [root@nextcloud src]# tar zxvf zendopcache-7.0.5.tgz [root@nextcloud src]# cd zendopcache-7.0.5 [root@nextcloud zendop
洗尽了浮华
2018/01/23
1.9K0
[精选] 面试PHP主管岗位的时候,问我PHP的opcache是用来干嘛的?
opcache从字面意思,肯定是缓存这一块的。但是你是否知道它的工作原理是怎样的呢?这里一点一点让你了解! PHP项目中,尤其是在高并发大流量的场景中,如何提升PHP的响应时间,是一项十分重要的工作。而Opcache又是优化PHP性能不可缺失的组件,尤其是应用了PHP框架的项目中,作用更是明显。 1. 概述在理解 OPCache 功能之前,我们有必要先理解PHP-FPM + Nginx 的工作机制,以及PHP脚本解释执行的机制。 1.1 PHP-FPM + Nginx
用户8568307
2022/03/14
9800
使用Redis和opcache扩展为网站加速教程
php在执行函数最消耗时间的就是查询SQL数据库了,一般来讲一个页面的数据库查询大概在120到260次左右,使用Redis或者Memcached缓存,原理就是将php查询过的数据库缓存下来,下一次相同内容就不再查询数据库了,直接从缓存获取,极大的提高php执行效率。
Hello-1
2022/08/30
6110
使用Redis和opcache扩展为网站加速教程
WordPress使用Redis和opcache为网站加速教程
相信建站的朋友都十分关心网站速度问题了,玖柒的小窝一直在强调极速优化这次词语,同时在之前的很多文章中我也简单的介绍了子比主题的关于速度优化的一些原理。理论上来讲使用子比主题搭配一个不是太差的服务器,那么就已经很快了,如果你想让你的网站变得更快,那么看了这篇文章,我相信完全够了。
玖柒的小窝
2021/10/22
2.6K0
WordPress使用Redis和opcache为网站加速教程
PHP安装配置Opcache加速你的网站
本文针对PHP5.5等高级版本,编译时需要加上--enable-opcache参数
老高的技术博客
2022/12/28
7070
PHP安装配置Opcache加速你的网站
点击加载更多

相似问题

OPcache不缓存任何内容

139

OpCache不缓存

21

php opcache缓存输出

14

Php Zend Opcache缓存包含文件

20

用opcache缓存PHP中的静态数据

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文