在 PHP 中,如果我用传送带构建一个工厂检查程序,其中表单上的弹出列表框是 100%(什么都不检查 - 让所有内容都通过)到 0%(检查所有内容),当一个的小部件应进行检查?
一些额外的信息——标签上写着“让 [x%] 小部件在没有检查的情况下通过”。
不仅如此,我们如何测试你的算法来证明它是正确的?例如,值为 100%,运行 99999 次,应该显示没有检查。99% 的值,运行 99999 次,如果重复运行,可能会显示一次检查。0% 的值,运行 99999 次,应该显示所有 99999 个小部件被发送到检查。
编辑:一位同事说我在这里混淆了赔率和概率。她认为我在描述概率?
无论如何,我尝试了这段代码作为测试,但除了 100 和 50 到 1 分之外它什么也没做。但是,1-49 的行为类似于 50,而 51 到 100 的行为类似于 100。
<?php
$nChance = @ $argv[1];
$nChance = intval($nChance);
for ($i = 1; $i <= 999999; $i++) {
$nTest = rand(1,floor(100/$nChance));
if (!($nTest == 1)) {
die("INSPECT! i($i) rand($nTest) chance($nChance)\n");
}
}
然后我尝试了这种变化,但也失败了,因为它只是一直说 INSPECT。
<?php
$nChance = @ $argv[1];
$nChance = intval($nChance);
for ($i = 1; $i <= 999999; $i++) {
$nTest = rand(0,100);
if (!($nTest < $nChance)) {
die("INSPECT! i($i) rand($nTest) chance($nChance)\n");
}
}