PHP で、フォーム上のポップダウン リストボックスが 100% (何も検査しない -- すべて通過させる) から 0% (すべて検査する) までのコンベヤー ベルトを使用して工場検査プログラムを作成した場合、のウィジェットの検査期限は?
ちょっとした追加情報 -- ラベルには、「[x%] 個のウィジェットを検査せずに通過させる」と書かれています。
これ以上に、どのようにアルゴリズムをテストして、それが正しいことを証明できますか? たとえば、値が 100% で 99999 回実行された場合、インスペクションは表示されません。99% の値で、99999 回実行すると、繰り返し実行すると、ブルームーンで 1 つの検査が表示されるはずです。値が 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");
}
}