当前位置: 首页 > 知识库问答 >
问题:

我应该在我的转置表中保存哪些值?

栾景胜
2023-03-14

我正在制作一个程序来玩Connect 6,Connect 4的变体,你必须连续获得6的序列,并且无论下面有多少个棋子,棋子都可以放置在任何未占用的空间中。

我目前正在使用Minimax和Alpha Beta修剪。我想用换位表来加快速度。

然而,我显然不能在我的换位表中保留所有可能的板子,所以我如何决定保留哪些板子?

我的换位表目前是[1000000][4]数组,因此可以存储400万个电路板状态。

目前为止的想法

我什么都没有。我想了一会儿,但什么也想不出来。

编辑

电路板的大小可以从7到19。我通过执行hashKey%1000000来访问数组,以获得第一个索引,然后循环剩余的4个以找到我要查找的状态。我正在使用Zobrist Hashing。

共有1个答案

南门承教
2023-03-14

为什么不直接将表视为缓存并采用 FIFO 或 LRU?

 类似资料:
  • 我想将我的IntelliJ配置文件保留在我的dotfiles repo中,但我的文件夹重量>1.3g:( 仍然重量>215米... 包含大量二进制文件...不是dotfiles的最佳候选项:(

  • 由于请求的不同用法和注释,我一直很困惑

  • 我正在使用vue.js和vuex开发一个应用程序,它使用JWT令牌对JSON API服务器进行身份验证。所以我想知道存放JWT代币的最佳做法是什么? 如果我将其存储在vuex商店中,则页面刷新后它会丢失,因此用户需要再次登录,这不是很方便。 如果我将其存储在浏览器的本地存储中,它会在下次登录之前被弃用,然后假设身份验证令牌的组件会混淆。我不知道如何处理这个问题。 感谢你对此的暗示。

  • 问题内容: 我应该将Maven 2项目放在哪里,以便将Maven放在目标EAR工件中? 问题答案: 本应打包在最终EAR的目录下(旁标准)。 使用Maven EAR插件, 额外文件要包含在EAR中 的默认位置(可以使用参数控制)是。因此,以下操作将起作用(使用默认值):

  • 我正在尝试编辑简单的Andorid应用程序build.gradle 我应该添加https://developer.android.com/studio/build/application-id 我应该把andorid{...}放在哪里?

  • 我的python Cloud函数每秒引发大约0.05个内存错误-每秒调用大约150次。我感觉我的函数留下了内存残差,一旦实例处理了许多请求,就会导致实例崩溃。为了使函数实例在每次被调用时不会占用“更多的分配内存”,您应该做或不应该做什么?我被指向文档,了解到我应该删除所有临时文件,因为这是在内存中编写的,但我认为我没有编写任何文件。 我函数的代码可以总结如下。 全局上下文:在Google云存储上获