繁体   English   中英

R 中为 1 的概率总和是一个浮点问题

[英]Sum of probabilities to be one in R is a floating-point problem

我面临一个与概率总和有关的浮点问题。 由于一些细微的差异,很难证明概率之和为 1。 MWE如下。

p1=0.99999999

p2=0.00000000003

p1+p2==1

[1] 错误

概率之和约为 1。与 1 的差值为 1-p1-p2 = 9.97e-09,非常小。 我需要在我的许多函数中应用概率条件的总和。 但是由于浮点数而停止执行。

有人可以指导我吗?

谢谢

问候

比较浮点数的一般原则不是测试是否相等,而是测试差异是否小于某个 epsilon,即您将接受为“相等”的最大差异。 在您的情况下,您将测试abs(p1+p2-1) < epsilon 搜索浮点比较,web 上到处都有很多文档和讨论,例如我应该如何进行浮点比较?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM