首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在应用程序中测试随机生成的特性?

如何在应用程序中测试随机生成的特性?
EN

Software Engineering用户
提问于 2012-08-18 02:40:59
回答 1查看 129关注 0票数 0

可能重复: 我应该如何测试随机性?

在我们的应用程序中要开发的特性之一是允许用户单击一个按钮,该按钮将从数据库中注册的值(通常为5-10)中随机选择一个元素。随机性不需要是安全的或科学上统一的,但我们确实需要它在某种程度上是不可预测的,而不是明显地偏向其中的一个价值。

有什么建议可以为这个特性编写一个好的单元测试和功能测试吗?

EN

回答 1

Software Engineering用户

发布于 2012-08-18 06:12:23

您可以在2个并行进程上使用相同的种子,如果它们在相同的时间框架内启动(在GHz处理器术语中),它们将具有与静态种子相同的种子。或者,大多数语言,如果使用相同的静态种子,将具有相同的数值生成(Java是这种API风格的一个很好的RNG示例)。

为了克服这一内在的静态可预见性,RNG的内部系统时间通常被播种到微或纳米秒范围内,在长期内具有很高的不可预测性,并且在短期内几乎不可能根据时间进行预测,因为它是由内部晶体时钟周期构成的。

顺便说一句:机器产生的所有数字都是伪随机的,但足够接近政府的工作。

要获得一个数值范围,只需取RNG值[0-1]的整数模(integer_range_max)。所以RNG * Modulo % Modulo会给你这个范围。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/161389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档