gpt4 book ai didi

delphi - 如果 Delphi 库使用 Random,它是否应该避免调用 Randomize 本身?

转载 作者:行者123 更新时间:2023-12-03 15:22:26 24 4
gpt4 key购买 nike

来自文档:

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

关于delphi - 如果 Delphi 库使用 Random,它是否应该避免调用 Randomize 本身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11168522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com