Analyse théorique d'algorithmes qui renvoient vrai ou faux, basée sur l'étude de probabilités données
P粉026665919
P粉026665919 2023-09-05 19:57:42
0
1
528
<p>Je souhaite implémenter une méthode qui renvoie <code>true</code> avec une probabilité de <code>n/m</code>. </p> <p>Par exemple, je souhaite obtenir <code>true</code> avec une probabilité de 7/10000. </p> <p>Pour y parvenir, j'obtiens d'abord un entier aléatoire
P粉026665919
P粉026665919

répondre à tous(1)
P粉616383625

Ce n’est pas comme ça qu’on fait. Votre code vérifie si n est inférieur à 7, ce qui est la bonne méthode.

D'où vient cette déclaration ? Vous pouvez certainement tester cette prémisse... et voir à quel point c'est possible.

C'est vrai.

Comment tester

Vous pouvez facilement tester la distribution de votre implémentation. Vous pouvez appeler cette fonction à plusieurs reprises, enregistrer le résultat que vous obtenez et voir comment il évolue au fil du temps. En statistique, plus la taille de l’échantillon est grande, plus les résultats sont fiables.

Il s'agit d'un extrait de code qui exécute en continu le rapport entre goAtChance函数并记录调用的总次数和true结果的数量。每隔10毫秒,结果会在页面上更新,包括truenombre et total. Si tout se passe bien, ce ratio devrait se rapprocher de 0,0007 au fil du temps.

const getRandomIntUnderN = (n) => Math.floor(Math.random() * n);
const goAtChance = (n, m) => getRandomIntUnderN(m) < n; 

let [outTotal, outHits, outRatio] = document.querySelectorAll("span");

let hits = 0; // Number of results that are true
let total = 0; // Total number of results

requestAnimationFrame(function loop() {
   let deadline = performance.now() + 10;
   do {
     hits += goAtChance(7, 10000); // boolean coerces to 0 or 1
     total++;
   } while (performance.now() < deadline);
   // Show the accumulated results
   outTotal.textContent = total;
   outHits.textContent = hits;
   outRatio.textContent = (hits / total).toFixed(8);
   requestAnimationFrame(loop); // Allow screen to update and then continue
});
样本数:<span></span><br>
命中数:<span></span><br>
比例:<span></span>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!