问题标签 [minmax]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
88 浏览

c++11 - *iter.first 和 iter->first 有什么区别?

在这里,我已经通过评论进行了解释。请参考评论。

0 投票
1 回答
886 浏览

java - Java Connect 4 MinMax 算法

编辑:我不知道为什么有人将我的 TicTacToe 链接为我的问题的重复项,其中甚至没有 MinMax-Algorithm。

目前我正在针对应该使用 MinMax-Algorithm 的计算机进行 Connect4 游戏。在此之前,我们编写了一个也使用 MinMax 的井字游戏,但我不确定如何更改我的旧算法以匹配 Connect4-Game :/。在井字游戏中,我用我写的获胜条件评估了每一个可能的移动,它运行良好,但现在它不适用于我的新条件。我的 makeAMove 等工作正常!

这些是我的旧条件和井字游戏的 MinMax:

//玩家1获胜

}

// 玩家 2 获胜

}

正如我所说,我将这些条件用于我的 MinMax,如下所示:

...

我不确定如何让它适应我的新条件:

我想我必须编写一个评估函数来检查这个例如(这是我的行的wincondition):

我知道这是很多文字,但也许有人可以给我一些有用的提示:)

谢谢!

最大限度

0 投票
0 回答
116 浏览

java - minmax 对于连接 4 无效

像我看到的许多其他人一样,我在实现 Connect4 游戏的 Minmax 算法时遇到了问题。在下面的示例中,算法不会尝试阻止玩家二,我不明白为什么。我的评估函数非常基础:二元函数。也许是因为深度,但我不这么认为。

代码:

0 投票
2 回答
768 浏览

javascript - JavaScript:非常大的数组中的最小值和最大值?

如何从一个非常大的 JavaScript 数组(例如 25 万个数字)中轻松获取最小值和最大值?

我尝试使用此方法,但它不起作用:JavaScript: min & max Array values?

我在 VisualStudio 中调试时没有收到任何错误,而在浏览器中我得到“超出最大调用堆栈大小”。

示例代码:

“arr”是我非常大的数组。

0 投票
1 回答
409 浏览

java - minimax算法中的堆栈溢出错误

嗨,所以我最近开始用 java 编程,我给自己设定了一个任务,为我制作的井字游戏制作 AI 但是 minmax 算法抛出 Stack Overflow 错误,我看不到错误或问题所在的程序。

这是程序:

它返回最佳移动状态。

getNull() 返回可以播放的剩余空间量。

getSuccesorStates(Player) 通过创建一个新状态来返回该状态的所有后续状态,该新状态包含旧动作和 Player 的新动作。

evaluate() 根据该状态下的赢、平或输返回值 -1、0 或 1。无返回 0

编辑:

23:32 if (currentState.getNull() == 0)
scoresTemp.add(evaluate(aiPlayer, minmax(!max, state)));

minmax 被调用:

如果有人可以提供帮助,谢谢您:)

0 投票
1 回答
9060 浏览

r - 非规范化数据

我用这个 R 代码用最小值和最大值对数据进行了归一化:

如何对数据进行非规范化?

0 投票
3 回答
582 浏览

c# - 如何建立一个最小最大值,从一个字符数组到相同的字符数组进行输出

这是我的代码:

这就是我的问题所在。

我的问题在哪里结束。

现在这些是详细信息(如果您需要更多,请随时回复。):

我尝试使用 num.max 而不是 pi.max,我个人偏好将所有内容拆分,但在这两种情况下,我都会遇到超出范围的异常,即索引为负数或大于我认为的集合应该工作的是它

  1. 将我写的任何内容设置为 pi 变量

  2. 然后将每个 char 拆分为 char 数组

  3. 然后使用 pi 来确定最小值和最大值。

  4. 那么它应该完全按照它的书写方式写出来。前任。""hello" 输入 变成 "hello" 输出。

现在这是我的 3 个问题:

  1. 我的逻辑正确吗?如果不是,请原谅我 18 岁,主要是我喜欢探索我能做什么和不能做什么。

  2. 如何使用 char 数组的最小值和最大值 ex。如果我写你好,我可以使用

    char[] Var = pi.ToCharArray(0,5);

    ConsoleWriteLine(Var);

输出将是“你好”对吗?但是,如果我写了“Hello World”,我将如何获取字符串中的所有字符,无论所述字符串中的字符数量是多少,或者更好的询问方式是如何使用字符串中的字符数量来获取ToCharArray(min,max) 的最小值和最大值,所以如果我写了一个 10 个字母的句子或一个 100 个字母的句子,我永远不会得到超出范围的异常?

  1. 有没有办法在一个简单的 1-5 行代码中做到这一点?我并不懒惰,但更容易更容易,所以为什么不使用它。
0 投票
1 回答
982 浏览

algorithm - 博弈树算法和渐进深化:如何在不到达叶节点的情况下近似答案?

我刚刚看到了关于游戏树和 MinMax 算法的 MIT 讲座,其中讨论了 Alpha Beta 修剪和渐进深化。
https://www.youtube.com/watch?v=STjW3eH0Cik

因此,如果我理解正确,渐进深化是当您尝试在每个级别近似答案并尝试根据您移动的时间限制深入叶节点时。在任何时候都有一些答案很重要。现在,在36:22 ,教授讨论了我们没有足够时间的情况,我们只去了第 (d-1) 层,其中 d 是树的深度。然后他还建议我们可以在每个级别都有一个临时答案,因为我们应该在任何时间点都有一些近似答案。

我的问题是我们如何在不去叶节点的情况下得到任何答案,因为只有在叶节点我们才能断定谁可以赢得比赛。认为这是井字游戏。在第 (d-1) 级,我们没有足够的信息来决定直到 (d-1) 节点的这一系列移动是否会赢得我或输掉比赛。在更高的水平上说在(d-3)它更加模糊!当我们下降时,一切皆有可能。不是吗?因此,如果算法决定计算直到 (d-1) 层,那么所有这些路径选项都是相等的!没有什么能保证赢,也没有什么能保证在(d-1)级输,因为如果我理解正确,只能在叶节点上计算输赢。在纯 MinMax 算法中尤其如此。

那么我们将如何在第(d-1)级或说第(d-5)级获得“近似答案”?

0 投票
6 回答
2302 浏览

c++ - 有没有办法轻松处理返回 std::pairs 的函数?

C++11 具有std::minmax_element返回一对值的函数。然而,这在处理和阅读时相当混乱,并且会产生一个额外的、后来无用的变量来污染作用域。

有一个更好的方法吗?就像是:

0 投票
2 回答
615 浏览

image - dicom 图像最小最大像素和位置

我是新来的。我有许多 dicom 图像。

  1. 我需要获得所有图像的 4 个最大像素值及其坐标
  2. 并自动从每个图像中裁剪 128 x 128 4 个补丁,使中心像素保持为已找到的最大像素之一
  3. 保存补丁

这样,我需要从每个像素中提取四个补丁。请告诉我我该怎么做。

我为一张图片制作了这段代码,但它没有给我正确的答案:

请帮我。