drand48()能否返回1?
drand48()的手册说:
(source) 所以只是为了澄清:这是否意味着drand48()可以返回1.0?或者它是否意味着返回值将是< 1.0? 我问,因为在暴力测试drand48()似乎永远不会返回1.0.它通常返回0,但从不返回1.0.然而,对我来说,drand48()的手册似乎说1.0确实是一个可能出现的结果,虽然我还没能在实践中使drand48()返回1.0. 这里有谁可以对此有所了解?结果总是小于1.0还是等于1.0? 解决方法
“超过间隔[0.0,1.0].”假设间隔的数学符号是安全的.括号间隔结束是排他性的,方括号间隔结束是包含的.因此根据符号,返回值可以是1.0.
但是这是旧版本的文档,当前的版本指定[0.0,1.0]作为间隔(这意味着它不能是1.0): >SingleUNIX?规范,版本2 http://pubs.opengroup.org/onlinepubs/7908799/xsh/drand48.html 列表[0.0,1.0] > Open Group Base Specifications Issue 7,2018 edition 所有列表[0.0,1.0) 所以我倾向于相信[0.0,1.0]是正确的规范. (可能是因为SUS2是自1997年以来的定义发生了变化,或者是页面上的拼写错误,但我没有这方面的专业知识所以我不会权衡)
这似乎非常可疑. 0.0应该与区间中的任何其他数字具有相同的概率,因此“它经常返回0”看起来不正确.检查您是否完全精确打印. 作为旁注,请注意dran48 and friends are obsolete (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |