加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如果Delphi库使用Random,它应该避免调用Randomize本身吗?

发布时间:2020-12-15 09:34:06 所属栏目:大数据 来源:网络整理
导读:从文档: Do not combine the call to Randomize in a loop with calls to the Random function. Typically,Randomize is called only once ,before all calls to Random. (突出显示’我只有一次’) 最佳实践问题: 如果Delphi库使用Random,它是否只记录Rand
从文档:

Do not combine the call to Randomize in a loop with calls to the
Random function. Typically,Randomize is called only once,before all
calls to Random.

(突出显示’我只有一次’)

最佳实践问题:

如果Delphi库使用Random,它是否只记录Randomize的初始化调用的要求,并将Randomize的调用留给库的用户?

或者库应该如何处理初始化,例如

if System.RandSeed = 0 then Randomize;

解决方法

在我看来,这完全取决于你的图书馆的结构和目的.

如果用户永远不会看到随机调用,那么我建议让库始终初始化它.将它放在文档中是没有必要的.

另一方面,如果用户实际上通过使用你的库(我猜你的库是如何工作的)直接调用Random或它的一些包装器,那么用户将(应该)意识到他正在使用某种随机 – 生成需要初始化的函数,因为大多数语言中的随机序列实际上是基于种子的伪随机序列.

可能是用户需要多次初始化随机序列,或者他/她可能只对初始化它一次感到高兴.这完全取决于用户的需求.

我不会强迫它,而是让Randomize调用对用户可用,并且可能让用户告诉库要么处理初始化还是留给他/她.在这种情况下,所有都应记录在案.

HTH

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读