问题列表 - 第14870页

对于IEEE754 NaN值,所有比较返回false的理由是什么?

为什么NaN值的比较与所有其他值的行为不同?也就是说,与运算符==,<=,> =,<,>的所有比较(其中一个或两个值为NaN)返回false,这与所有其他值的行为相反.

我想这可以通过某种方式简化数值计算,但我找不到明确说明的理由,甚至在Kahan 的IEEE 754状态讲义中也没有详细讨论其他设计决策.

这种异常行为在进行简单数据处理时会造成麻烦.例如,当在C程序中对某些实值字段的记录列表进行排序时,我需要编写额外的代码来处理NaN作为最大元素,否则排序算法可能会变得混乱.

编辑: 迄今为止的答案都认为比较NaNs毫无意义.

我同意,但这并不意味着正确的答案是错误的,而是一个非布尔值(NaB),幸运的是它不存在.

因此,在我看来,选择返回真或假的比较是任意的,对于一般数据处理,如果它遵循通常的定律(==的反射性,<= =,>的三分法),那将是有利的,以免数据结构依赖这些法律变得困惑.

因此,我要求打破这些法律的一些具体优势,而不仅仅是哲学推理.

编辑2: 我想我现在理解为什么使NaN最大化是一个坏主意,它会搞砸上限的计算.

可能需要NaN!= NaN以避免检测环路中的收敛,例如

while (x != oldX) {
    oldX = x;
    x = better_approximation(x);
}
Run Code Online (Sandbox Code Playgroud)

然而,最好通过比较绝对差异与小限制来编写.所以恕我直言,这是打破NaN反身性的一个相对弱的论据.

floating-point comparison nan ieee-754 iec10967

240
推荐指数
5
解决办法
4万
查看次数

SQL Server如何在同一数据库中跨表维护GUID

我想创建一个数据库,其中每个表的 PK 都是 GUID,并且在整个数据库中是唯一的,

示例:我的数据库名称是“LOCATION”。我有 3 个表,分别是“城市”、“州”和“国家”。

我希望所有 3 个表都具有与 GUID 相同的 PK 字段,并且该值在数据库中是唯一的。

如何在 SQL Server 中执行此操作,有什么想法吗?我以前从未使用过 SQL Server,因此如果简要解释一下将会很有帮助。

sql-server guid primary-key

2
推荐指数
1
解决办法
2241
查看次数

Python:在主程序和PEP 8的开头导入

PEP 8建议模块在节目开始进口.

现在,我觉得在主程序开始时(即之后if __name__ == '__main__')导入其中一些是有道理的.例如,如果主程序从命令行读取参数,我倾向于import sys主程序的开头执行:这样,sys当代码用作模块时不必导入,因为没有必要,在这种情况下,用于命令行参数访问.

这对PEP 8的侵权有多严重?我应该避免这样做吗?或者修改PEP 8是否合理?

python import program-entry-point pep8 pep

5
推荐指数
2
解决办法
1451
查看次数

我可以在Linux上进行写时复制memcpy吗?

我有一些代码,我经常复制一大块内存,通常只需要对它进行非常小的更改.

我已经实现了一个跟踪更改的系统,但我认为如果可能的话,可以告诉操作系统对内存进行"写时复制",并让它只处理那些部分的副本哪个改变了.然而,虽然Linux执行copy-on-write,例如fork()时,我找不到一种控制它并自己动手的方法.

c linux memory-management

24
推荐指数
1
解决办法
7896
查看次数

您对视图/分支机构的Perforce实践是什么?

我是Perforce的新手.

您会在视图/分支方面考虑P4最佳实践.

你会创建一个可以访问许多分支的视图,还是会创建一个视图/分支?

我不确定Perforce中的视图/劣化空间之间的切换是否容易.

谢谢,

托马斯

perforce branch perforce-client-spec

2
推荐指数
1
解决办法
1668
查看次数

检查文本框是否为空值

我有以下代码:

var inp = $("#txt");

if(inp.val() != "")
// do something
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以使用变量'inp'检查空文本框

jquery

88
推荐指数
6
解决办法
24万
查看次数

ASP.Net aspx属性仍然存在

保存aspx页面的属性值的最佳做法是什么?

我做了以下,是否有一些更整洁的方式?

    public string DataTable
    {
        get
        {
            return _DataTable;
        }
        set
        {
            _DataTable = value;
            ViewState["DataTable"] = value;
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DataTable = Request["dataTable"].ToString();
        }
        else
        {
            DataTable = ViewState["DataTable"].ToString();
        }
    }
Run Code Online (Sandbox Code Playgroud)

asp.net

1
推荐指数
1
解决办法
1173
查看次数

有没有办法检查两个集合是否包含相同的元素,与订单无关?

我一直在寻找一种操作类似Arrays.equals(a1, a2)但忽略元素顺序的方法.我无法在Google Collections中找到它(类似的东西Iterables.elementsEqual(),但确实考虑到了排序)和JUnit(assertEquals()显然只是调用equals()Collection,这取决于Collection实现,而这不是我想要的)它会如果这样的方法会采用Iterables,那就最好了,但是我也可以简单地使用Collections这样的方法当然会考虑集合中的任何重复元素(所以它不能简单地测试containsAll()).

请注意,我不是在问如何实现这样的事情,我只是想知道是否有任何标准的Collections库都有它.

java collections equals

36
推荐指数
2
解决办法
4万
查看次数

如何确定需要同步哪部分Java代码?

如何确定需要同步的Java代码的一部分?有没有单元测试技术?

欢迎使用代码示例.

java concurrency synchronization

3
推荐指数
1
解决办法
306
查看次数

如何在Spring 3中将SimpleFormController与Validator一起使用?

我正在使用Spring 3并且不推荐使用SimpleFormController.听起来我们应该使用像@Controller这样的注释.好的,但是如何在我的控制器中管理我的表单的验证器?

谢谢

spring spring-mvc

6
推荐指数
1
解决办法
3277
查看次数