基于0% - 100%频率阈值判断是否为真的算法



对不起,如果这是一个重复的问题。我做了一个搜索,但不确定到底要搜索什么。

我正在编写一个执行扫描的应用程序。当扫描完成后,我们需要确定是否找到了一个项目。用户可以设置一个阈值来决定条目是否被找到:0%的时间、25%的时间、50%的时间、75%的时间或100%的时间。

显然,如果用户选择0%或100%,我们可以使用true/false,但对于频率,但我对其他阈值应该如何工作一无所知。

我假设我需要在每次发现怪物时存储并增加一些值。

提前感谢您的帮助!

正如@nix指出的那样,听起来你想根据你希望"发现"某事的时间百分比生成一个随机数和阈值。

您需要注意您选择的范围和阈值如何实现所需的结果,以及您使用的随机数生成器的分布。当处理百分比时,一个明显的方法是生成100个均匀分布选项中的1个,并适当地设置阈值,例如0-99,并检查该数字是否小于您的百分比。

一个快速检查告诉我们,你永远不会得到一个小于0的数字,所以0%达到预期结果,你总是得到一个小于100的数字,所以100%达到预期结果,有50个选项(0-49)小于50个选项(0-99),所以50%也达到预期结果。

考虑到用户只能选择以25%为增量的范围,一种微妙的不同方法是生成0-3范围内的数字,如果数字小于百分比/25,则返回True。如果要将用户选择存储为0-4(0:0%,1:25% ..)之间的数字。4: 100%)这可能更简单。

这里讨论了在Objective-C中生成伪随机数的各种方法:

请注意,这里提到的随机数的一致性可能对范围很敏感,这取决于您使用的方法。

为了有信心,你总是可以做一些直接的测试,通过大量调用你的函数,跟踪它返回true的次数,并将其与期望的百分比进行比较。

生成0到100之间的随机数。如果数量大于阈值,则找到一个项目。

最新更新