Comment puis-je définir des points sur une période de 24h étalée par les distributions gaussiennes? Par exemple pour avoir le pic à 10 heures?Distributions gaussiennes avec PHP sur une période de 24 heures
Répondre
Le code suivant génère un temps aléatoire réparti gaussien (en heures, plus fractions d'heure) centré à un instant donné et avec un écart-type donné. Les temps aléatoires peuvent "enrouler" autour de l'horloge, surtout si l'écart type est de plusieurs heures: ceci est géré correctement. Un algorithme d'emballage différent peut être plus efficace si vos écarts-types sont très importants (plusieurs jours), mais la distribution sera presque uniforme dans ce cas, de toute façon.
$peak=10; // Peak at 10-o-clock
$stdev=2; // Standard deviation of two hours
$hoursOnClock=24; // 24-hour clock
do // Generate gaussian variable using Box-Muller
{
$u=2.0*mt_rand()/mt_getrandmax()-1.0;
$v=2.0*mt_rand()/mt_getrandmax()-1.0;
$s = $u*$u+$v*$v;
} while ($s > 1);
$gauss=$u*sqrt(-2.0*log($s)/$s);
$gauss = $gauss*$stdev + $peak; // Transform to correct peak and standard deviation
while ($gauss < 0) $gauss+=$hoursOnClock; // Wrap around hours to keep the random time
$result = fmod($gauss,$hoursOnClock); // on the clock
echo $result;
Je pense que cette forme de l'algorithme est appelée "méthode polaire de Marsaglia". – lapo
Si vous avez des difficultés à générer des points aléatoires distribués gaussienne admirent http://en.wikipedia.org/wiki/Box-Muller_transform
Sinon s'il vous plaît préciser votre question.
- 1. exécuter une tâche PHP toutes les 24 heures
- 2. mysql 12 heures à 24 heures de temps de conversion
- 3. PHP MySql Stockage des données pendant 24 heures
- 4. comment ajouter 24 heures dans une colonne en ms accès
- 5. Pouvez-vous formater une chaîne de temps de 24 heures en chaîne de 12 heures avec AM/PM?
- 6. visites de la fiche dans les 24 dernières heures
- 7. CultureInfo & DateTimeInfo: Comment vérifier si l'heure est de 24 heures?
- 8. Exécution de Flash Player sur une longue période
- 9. DateTime Format comme HH: mm 24 heures sans AM/PM
- 10. .NET Expression régulière pour le format 24 heures
- 11. Comment initialiser une période avec des secondes
- 12. Comment savoir si l'utilisateur utilise 24 heures de temps en utilisant Cocoa
- 13. RIA Services + Entités - Date de déménagement 24 heures plus tôt dans le client
- 14. Comment sélectionner les 24 dernières heures de lignes à partir d'un décalage de ligne
- 15. Afficher le nombre de visites dans les 24 dernières heures, réparties par heure
- 16. Quelle est la meilleure façon de formater 24 heures dans XSLT 1.0?
- 17. Le téléchargement de fichiers PHP 24 Mo échoue silencieusement
- 18. créer des distributions dans mathematica
- 19. Comment filigrane image GIF avec PNG 24 bits avec transparence en PHP?
- 20. Comment puis-je enregistrer manuellement des distributions avec pkg_resources?
- 21. Comment est-ce que je compare l'heure d'une époque avec celle d'il y a 24 heures dans SQL Server?
- 22. Convertir Float avec une période au lieu d'une virgule?
- 23. Quelles sont les distributions Subversion adaptées à une entreprise?
- 24. Utiliser DataBinder.Eval avec un indexeur contenant une période
- 25. Comment trouver des enregistrements ajoutés à ma table de base de données au cours des dernières 24 heures?
- 26. Temporisateur portable pour une période d'environ 100ms
- 27. Comment changer une date en changeant la période AM/PM au format 12h?
- 28. largeur fixe CSS dans une période
- 29. Google Calendar PHP Récupérer les événements par période spécifiée
- 30. Transformer une date en utilisant une expression régulière de 24Dec à 24/12 ou 24/12/2009
@Roel: l'écart-type n'a pas d'importance, j'ai juste besoin de la logique PHP. Nous pourrions utiliser quelque chose comme 8. – powtac
Désolé, j'ai mal compris la question et j'ai supprimé ma «réponse» (qui n'était pas une réponse en premier lieu). Toutes mes excuses pour le bruit. – Roel
Je suggère d'illustrer ce dont vous avez besoin sous la forme d'une fonction php - quelles entrées avez-vous disponibles, et qu'est-ce qui caractériserait une sortie réussie. –