rAthus icon

générateur libération lots instant gagnant aléatoire équitable

rAthus | PRO | 08/31/22 02:42:08 PM UTC (Edited) | 0 ⭐ | 1393 👁️ | Never ⏰ | []
PHP |

1.15 KB

|

None

|

0 👍

/

0 👎

<?php
    
    /*************\
    |* variables *|
    \*************/
    
    // timestamp de début de jeu
    $ts_deb = 1664575200;
    // timestamp de din de jeu
    $ts_fin = 1669762800;
    // lots (dénomination => nombre à gagner)
    $lots = array(
        "Session de simulateur F1" => 25,
        "Montre Ferrari" => 25,
    );
    
    /***************************************\
    |* à partir de là tout est automatique *|
    \***************************************/
    
    // calcul du nombre total de lots
    $nb_lots = array_sum($lots);
    // calcul de la durée d'une tranche égale pour chaque lot
    $duree_lot = ($ts_fin-$ts_deb)/$nb_lots;
    // création d'un ordre aléatoire des lots
    $lots_melanges = array();
    while(count($lots)) {
        $k = array_rand($lots);
        $lots_melanges[] = $k;
        $lots[$k]--;
        if ($lots[$k]==0)
            unset($lots[$k]);
    }
    // répartition des lots aléatoirement dans chaque tranche
    $linez = array("Timestamp\tHorodatage\tLot");
    for ($i=0; $i<$nb_lots; $i++) {
        $ts = $ts_deb+$duree_lot*$i+rand(0,$duree_lot);
        $linez[] = $ts."\t".date('d/m/Y H:i:s',$ts)."\t".$lots_melanges[$i];
    }
    // affichage du tableau de résultats
    echo implode("\n",$linez);
    

Comments