Advertisement
Guest User

Inscriptions Fake

a guest
Apr 1st, 2014
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.25 KB | None | 0 0
  1. #! /usr/bin/env python
  2.  
  3. from math import floor
  4.  
  5. # tous les temps sont en secondes apres minuit le 1er avril 2014
  6. BEGIN_TIME = 0 # debut de la djoque
  7. INTERMEDIARY_TIME = 8 * 60 * 60 # temps du changement de regime
  8. CAP_TIME = 21 * 60 * 60 # temps auquel on arrête d'augmenter
  9. END_TIME = 24 * 60 * 60 # fin de la djoque
  10.  
  11. # toutes ces donnees doivent etre les vraies (prises dans la vraie DB au moment ou le script est execute)
  12. REGISTRATION_CAP = 1000 # vrai maximum d'inscriptions
  13. REGISTRATION_NUM = 500 # vrai nombre actuel d'inscrits
  14. PREREGISTRATION_NUM = 875 # vrai nombre actuel de preinscrits
  15.  
  16. REGISTRATION_CAP = 1000 # nombre maximum d'inscrits (vraie valeur)
  17. INTERMEDIARY_CAP = floor(REGISTRATION_CAP * 0.81) # fake nombre d'inscrits au moment du changement de regime (INTERMEDIARY_TIME)
  18. CHEAT_CAP = floor(REGISTRATION_CAP * 0.96) # fake nombre d'inscrits total a la fin de la journee
  19.  
  20. # Le mega fonction qui va bien
  21. def get_reg_totals(sec):
  22.     # initialisations qui vont bien
  23.     preregistered = PREREGISTRATION_NUM
  24.     registered = REGISTRATION_NUM
  25.  
  26.     int_reg_num = min(REGISTRATION_NUM, INTERMEDIARY_CAP) # protection si le nombre d'inscrits reel depasse le cap intermediaire avant l'heure
  27.  
  28.     # La magie des maths
  29.     if sec < INTERMEDIARY_TIME:
  30.         registered = sec * (INTERMEDIARY_CAP - int_reg_num)/(INTERMEDIARY_TIME - BEGIN_TIME) + int_reg_num
  31.     elif sec < CAP_TIME:
  32.         registered = (sec - INTERMEDIARY_TIME) * (CHEAT_CAP - INTERMEDIARY_CAP)/(CAP_TIME - INTERMEDIARY_TIME) + INTERMEDIARY_CAP
  33.     elif sec < END_TIME:
  34.         registered = CHEAT_CAP
  35.     else:
  36.         preregistered = PREREGISTRATION_NUM
  37.         registered = REGISTRATION_NUM
  38.  
  39.     preregistered = preregistered + registered - REGISTRATION_NUM # Le nombre de preinscrits depend simplement du vrai et du faux nombre d'inscrits
  40.  
  41.     # si par magie les vrais nombres de (pre)inscrits depasse notre fakage, on a tout prevu
  42.     preregistered = max(PREREGISTRATION_NUM, preregistered)
  43.     registered = max(REGISTRATION_NUM, registered)
  44.  
  45.     # plus qu'a retourner des nombres entiers et on a tout fini =D
  46.     return (int(preregistered), int(registered))
  47.  
  48. # petits exemples (pour chaque heure de la journee)
  49. for i in range(0,25):
  50.     print(i, get_reg_totals(i * 60 * 60))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement