问题标签 [correctness]

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 回答
4666 浏览

algorithm - negamax 算法的这种实现是否正确

我正在尝试实现 negamax 算法,这就是我认为应该的方式:

以及对应的negamax函数

是的,我知道它没有编译,但我只是想对其进行一些伪编码。

编辑

calculateBoardFunction(Board board) 将始终评估棋盘的最佳移动计算颜色。

另外,我试图让它通用,所以它对每场比赛(国际象棋,黑白棋,围棋)等都一样......(但这不是问题的一部分)

我还以维基百科的 negamax 伪代码为例。但是使用我>>认为<<我可以使用正确的启发式值很好地创建游戏树的代码。但我在getBestMove函数中有代码的原因是要弄清楚什么动作实际上是最好的。

但我不确定我是否能做到这一点。

0 投票
4 回答
1141 浏览

c# - 类数据校验的实现

我有一个代表某些空气隧道物理特性的对象:

我需要检查参数的正确性:例如,长度必须是> 0,压力>= 0等。第一个想法只是对属性访问器进行检查并在无效数据上抛出异常:

但是我有一个这样的对象的集合,它将被序列化/反序列化到/从 XML 文件。所以问题是它不适用于序列化(如果我没记错的话)。用户可以编辑文件并输入他想要的任何内容,我将无法捕捉它。

因此,据我了解,需要创建一些函数(在Tunnel类中或在另一个函数中),我将调用它来检查所有值是否正确。但是这里还有一个问题:Tunnel可以有很少的无效参数。我应该如何返回错误并处理它们?程序必须在一次调用中返回所有发现的错误。而且这种方式只对我自己使用类有好处。我可能无法强制其他程序员在每次编辑数据后使用验证。

请给我一个建议,如何更正确地实施这种值检查并解决我的问题 - 也许是另一种灵活的方式,以便将来易于管理和改进此代码。谢谢你。

编辑:回到我的第一个想法,有没有办法在序列化期间或之后验证数据?

0 投票
1 回答
760 浏览

c++ - 哪个编译器是对的?需要模板化返回类型之前的“模板”?

这个片段(取自这个问题)用 g++ 编译得很好(如所见),只要template返回类型存在之前。相比之下,VC10 不编译该代码并出现以下错误:

错误 C2244:“A::getAttr”:无法将函数定义与现有声明匹配

如果我删除template,VC10 很高兴,但 g++ 会发出这个错误:

错误:非模板“AttributeType”用作模板
注意:使用“A::template AttributeType”表示它是模板

又是VC破了两相查找还是什么原因?哪个编译器在这里?我怀疑 g++ 是正确的,因为我对template这里需要的记忆模糊,就像rebind分配器内部的模板一样。


编辑:我们有一个赢家:g++/GCC(意外惊喜......)。


0 投票
4 回答
43027 浏览

c - Sakamoto 算法找到星期几的正确性

我正在使用 Sakamoto 的算法从给定日期找出星期几。谁能告诉我这个算法的正确性?我只想要这个从 2000 年到 2099 年。

来自维基百科的算法供参考。

0 投票
1 回答
969 浏览

jquery - 使用 jQuery 淡化像文本一样的横幅

我有一个标题文本,我想淡入一个框。之后,字幕应在其下方淡入。一旦两者都可见,它们应该淡出,下一组应该淡入,以相同的方式。

这是我创建的,但是,我怀疑它的运行情况,即浏览器是否需要大量 CPU。我的担忧之一也是 Javascript 的递归深度。

我有以下代码(我也包含在 jsfiddle 中,以及 CSS 和 HTML http://jsfiddle.net/ukewY/1/

我的问题是这是否是正确的方法?或者如果有更好的,也许是非递归的方式来做到这一点?

PS。因为这是一个网站的横幅,我不担心会变id大,因为人们可能已经继续前进了。

0 投票
2 回答
38 浏览

function - 关于对相似的功能/方法进行分组或分离的问题

我将举一个我必须在我正在编码的程序中实现的真实示例:

我有一个数据库,其中包含过去三年在保龄球中心投球的每场比赛的得分。使用 GUI,您可以选择搜索每条车道的最高分、搜索两个日期之间的最高分、每周的最高分等。

我想知道实现这一点的最佳方法是什么。我应该编写这样的代码:

还是为每种类型编写不同的方法并在侦听器中调用正确的方法是否更合适?

我不一定要问这个特定的问题,这只是我在编写多个原理相同但参数不同的方法时经常问自己的一个问题。

我可以看到有充分的理由使用它们中的每一个,但我想知道是否有“更正确”或标准的编码方式。

0 投票
1 回答
584 浏览

ruby-on-rails - 使用 Ruby/Rails 发布多个对象(JSON 格式错误?)

这更像是“我在做这个正确的问题”。

基本上我有你的标准客户端服务器设置。

我正在尝试将多个对象作为一个对象发布到服务器。发布的对象是:

1:一维字符串数组(非常简单)@headers

2:一个散列数组,每个散列包含大约 7 个值和键。@contentsArray

我认为像下面这样的东西可以解决问题

定义的 URL 显然是服务器,但它是如何通过的,如下所示

如果我像这样创建一个变量

@x 是一个字符串,在其他代码中它会作为一个对象出现。具有无关访问的数组或哈希。

自然地,我认为我必须从 JSON 反序列化它,所以我使用了该行的

两者都抛出 JSON::ParserError (745: unexpected token at 'content .... 然后是字符串的其余部分。

我想我是在正确发送对象还是以错误的方式构造它们?

0 投票
1 回答
149 浏览

http - HTTP服务器正确性测试

我编写了一个简单的 HTTP 服务器,到目前为止,我偶然发现了一些难以追踪的错误。例如,不在响应的标头和内容之间添加空行,或者为 WebSocket 连接提供不正确的质询响应。有了这样的错误,Firefox 似乎通常会忽略它们并显示页面,而 Chrome 只是关闭套接字而不给出任何错误消息。

是否有一个简单的免费程序可以向我的服务器发出一些请求并报告它做错的每一件小事,以便我可以追踪这些错误?我看过一些这样的程序,但没有一个是免费的,而且我真的不想在一个爱好项目上投入太多。(也许 Chrome 甚至有一个标志可以在关闭套接字时解释问题?)

我并不关心处理来自客户端的奇怪请求(正如 Apache Test 似乎关注的那样)——我需要验证的是,理智的请求会得到不会混淆客户端的正确响应。

0 投票
5 回答
1372 浏览

haskell - 显示两个不同的斐波那契函数是等价的

我正在尝试确切地了解证明程序正确的含义。我从头开始,开始关注第一步/主题介绍。

这篇关于全函数式编程的论文中,给出了斐波那契函数的两个定义。传统的一种:

和我以前从未见过的尾递归版本:

该论文随后声称,通过归纳证明两个函数对所有正整数 n 返回相同的结果是“直截了当的”。这是我第一次想到分析这样的程序。认为你可以证明两个程序是等价的,这很有趣,所以我立即尝试自己通过归纳来做这个证明。要么我的数学技能生疏了,要么任务实际上并不是那么简单。

我证明了 n = 1

我做了 n = k 假设

我开始尝试证明,如果假设成立,那么函数对于 n = k + 1 也是等价的(因此它们对于所有 n >= 1 QED 都是等价的)

我尝试了各种操作,在正确的时间替换假设等等,但我不能让 LHS 等于 RHS,因此证明函数/程序是等价的。我错过了什么?论文中提到任务相当于证明

通过对任意 p 的归纳。但我根本不明白这是怎么回事。作者是如何得出这个等式的?只有当 时,这才是方程上的有效变换p = 0。我不明白这意味着它如何适用于任意 p。要证明它对于任意 p 需要你经过另一层归纳。当然,要证明的正确公式是

到目前为止,这也没有帮助。谁能告诉我如何进行感应?或链接到显示证明的页面(我进行了搜索,找不到任何东西)。

0 投票
6 回答
4155 浏览

python - 这个 Python 语句的含义是什么?

更具体地说,我不确定紧随其后的“%”和“\”符号应该是什么意思:

这个返回语句是否被认为是一行代码?因为我最初认为“\”是为了将似乎过长的行分成两部分,以提高可读性并避免回绕。

另外,我这里的表格反映了我的代码中的内容。说 '(self.id, a, b, c, d, e, f)' 的部分确实比 return 语句的开头更远了一次。

基本上,该语句等效于:

在这个没有“\”涉及....