Maison Bibliothèques PHP Autres bibliothèques Classe de fonctions PHP pour l'algorithme de probabilité gagnante
Classe de fonctions PHP pour l'algorithme de probabilité gagnante
<?php
function get_rand($proArr) {
    $result = '';
    //概率数组的总概率精度
    $proSum = array_sum($proArr);
    //概率数组循环
    foreach ($proArr as $key => $proCur) {
        $randNum = mt_rand(1, $proSum);
        if ($randNum <= $proCur) {
            $result = $key;
            break;
        } else {
            $proSum -= $proCur;
        }
    }
    unset ($proArr);
    return $result;
}

Le tableau des prix est un tableau bidimensionnel qui enregistre toutes les informations sur les prix de cette loterie, où id représente le niveau gagnant, prix représente le prix et v représente la probabilité de gagner. Notez que v doit être un entier. Vous pouvez définir le v de la récompense correspondante sur 0, ce qui signifie que la probabilité de remporter la récompense est de 0. La somme de v dans le tableau (base) est grande. précis, la probabilité peut être reflétée. Dans cet exemple, la somme de v est de 100, alors la probabilité de gagner pour la tablette est de 1 %. Si la somme de v est de 10 000, la probabilité de gagner est de une sur dix mille. $proArr est un tableau prédéfini. Supposons que le tableau soit : array(100,200,300,400). Il commence par filtrer le premier nombre de la plage de probabilité de 1 1000 pour voir s'il se trouve dans sa plage de probabilité d'occurrence. L'espace de probabilité est l'espace de probabilité de la valeur de k moins le nombre actuel. Dans ce cas, il est de moins 100, ce qui signifie que le deuxième nombre est filtré dans la plage de 1 900. De cette façon, jusqu'à la fin de la présélection, il y aura toujours un numéro qui répondra aux exigences. C'est comme toucher quelque chose dans une boîte. Si le premier n'est pas là, le deuxième n'est pas là et le troisième n'est pas là, alors le dernier doit l'être. Cet algorithme est simple et très efficace. La clé est que cet algorithme a été appliqué dans nos projets précédents, en particulier dans des projets avec de grandes quantités de données. L'efficacité est très bonne.


Clause de non-responsabilité

Toutes les ressources de ce site proviennent d'internautes ou sont réimprimées par les principaux sites de téléchargement. Veuillez vérifier vous-même l'intégrité du logiciel ! Toutes les ressources de ce site sont uniquement à titre de référence d'apprentissage. Merci de ne pas les utiliser à des fins commerciales. Sinon, vous serez responsable de toutes les conséquences ! En cas d'infraction, veuillez nous contacter pour la supprimer. Coordonnées : admin@php.cn

Article connexe

Comment jQuery simplifie-t-il la manipulation du DOM pour les développeurs Web ? Comment jQuery simplifie-t-il la manipulation du DOM pour les développeurs Web ?

03 Jan 2025

Overflow : Hidden and Expansion of HeightjQuery se distingue des autres bibliothèques JavaScript par sa compatibilité multiplateforme et...

Comment créer une bibliothèque statique à partir de plusieurs autres bibliothèques statiques ? Comment créer une bibliothèque statique à partir de plusieurs autres bibliothèques statiques ?

17 Dec 2024

Création d'une bibliothèque statique liée à d'autres bibliothèques statiquesLors de la création d'une bibliothèque statique qui s'appuie sur des dépendances de plusieurs autres...

Les bibliothèques Python les plus sous-estimées que vous devriez commencer à utiliser dès maintenant Les bibliothèques Python les plus sous-estimées que vous devriez commencer à utiliser dès maintenant

03 Nov 2024

« Attendez… il existe des bibliothèques Python autres que Pandas et NumPy ? Si c'est ce que vous pensez, bienvenue au club ! Bien sûr, Pandas et NumPy sont géniaux, mais il existe tout un monde de bibliothèques Python sous-estimées qui peuvent vous faire ressembler à un expert en codage.

Convention d'extension .py Convention d'extension .py

05 Dec 2024

La connexion des bibliothèques Python s'effectue de la même manière que la procédure standard, que ce soit en C /Java/autres : système d'importation importer openpyxl à partir de PyQt5 importer QtWidgets à partir de PyQt5.Qt importer QTableWidgetItem à partir de l'importation PyQt5.QtWidgets ( QApplication,

Comment lier des bibliothèques statiques qui dépendent d'autres bibliothèques statiques ? Comment lier des bibliothèques statiques qui dépendent d'autres bibliothèques statiques ?

13 Dec 2024

Lier des bibliothèques statiques à d'autres bibliothèques statiques : une approche complèteLes bibliothèques statiques fournissent un mécanisme pratique pour empaqueter des...

Gérez les doublons dans votre Bitwarden Vault avec Python Gérez les doublons dans votre Bitwarden Vault avec Python

05 Jan 2025

Bitwarden ne dispose pas de méthode intégrée pour gérer les doublons dans votre coffre-fort. Je n'étais pas satisfait des autres bibliothèques créées par les utilisateurs que j'ai trouvées, alors j'ai créé un outil basé sur Python pour aider à automatiser le processus. Caractéristiques Filtrer les entrées par

See all articles