1. #1
    Membre du Club
    Homme Profil pro
    Consultant SAP (Abap)
    Inscrit en
    février 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant SAP (Abap)
    Secteur : Conseil

    Informations forums :
    Inscription : février 2015
    Messages : 26
    Points : 40
    Points
    40

    Par défaut Répartition d'une cagnotte pour une loterie

    Bonjour,

    J'ai cherché dans ce forum et avec Google mais je n'ai rien trouvé

    Alors voilà, au sein d'un jeu vidéo, j'organise une loterie chaque semaine pour redistribuer l'argent récolté. Le principe de cette loterie est qu'il n'y a pas de perdant. Donc pour se faire, je cherche un algo, une formule, quelque chose qui me permettrait de répartir le montant de la cagnotte entre le nombre de participants.
    Là où ça se complique c'est que je ne souhaite pas faire une simple division car le premier toucherais le même montant que le dernier. Je cherche donc un genre de répartition exponentielle...


    Par exemple:

    Montant de la cagnotte : 100
    Nombre de participants : 4
    Répartition : 45, 35, 15, 5

    Montant de la cagnotte : 100
    Nombre de participants : 5
    Répartition : 45, 30, 15, 8, 2

    Ce sont des exemples, j'ai défini les proportions par moi même un peu au pif.


    Merci d'avance pour votre aide

  2. #2
    Membre éclairé

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    décembre 2010
    Messages
    446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : décembre 2010
    Messages : 446
    Points : 879
    Points
    879
    Billets dans le blog
    5

    Par défaut Répartition d'une cagnotte pour une loterie

    Bonjour,

    Pour (N) participants, il suffit de se donner une suite finie monotone croissante de (N) termes (U1, U2 , ... , UN) ,
    de somme S = Sk=1N(Uk) ,
    pour définir un gain proportionnel proportionnel à chacun des termes précédents, ainsi qu'à la cagnotte constituée (C) : Gk = C * (Uk / S) .

    Exemples:
    a) pour la séquence arithmétique U = (1, 2, 3, 4) et C = 100 , (S) vaut 10 , et la séquence des gains: G = (10, 20, 30, 40) ;
    b) pour la séquence géométrique U = (1, 2, 4, 8, 16) et C = 1000 , S vaut 31 et la séquence des gains: G = (32, 65, 129, 258, 516) - en arrondissant à l'entier le plus proche.

    Toute séquence, même arbitrairement choisie, convient dans la mesure où la somme des gains est égale à la cagnotte


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

  3. #3
    Membre du Club
    Homme Profil pro
    Consultant SAP (Abap)
    Inscrit en
    février 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant SAP (Abap)
    Secteur : Conseil

    Informations forums :
    Inscription : février 2015
    Messages : 26
    Points : 40
    Points
    40

    Par défaut

    Merci pour ta réponse !

    J'ai bloqué un moment sur le "S" puis j'ai finalement compris que c'était la somme de N premiers nombres de la suite

    Du coup, je me suis généré une suite de nombre avec la formule "(x*3)+5" (histoire d'avoir un truc un peu exponentiel) et j'obtient cette suite : 8, 22, 42, 68, 100, 138, 182, 232, 288, 350

    Je vois le principe général, grosso modo on considère les N premiers chiffres de la suite puis un peu comme avec des règles de 3 pour obtenir proportion par rapport à la cagnotte.

    Bon maintenant il va falloir que je mette ça en place dans une feuille de calcul ! Je sens que je vais m'amuser


    Merci encore pour ton aide ! Rapide et efficace !

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    décembre 2013
    Messages
    1 507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : décembre 2013
    Messages : 1 507
    Points : 3 147
    Points
    3 147

    Par défaut

    Pour le type de suite que tu envisages, de mémoire, il n'y a pas de formule directe qui permet par 2 ou 3 opérations de trouver les bonnes valeurs.
    Mais pour des suites géométriques, il y a des formules toutes faites.
    Par exemple si tu veux N=10 lots, avec à chaque fois un ration de R = 1.2 entre le rang r et le suivant, et si veux distribuer un Total de T=1000 jetons, la formule est :
    a = T * ( R-1) / ( R^(N+1) -1)

    a est le plus petit montant de la série, les autres s'obtiennent en multipliant par 1.2 à chaque lot.
    Avec les valeurs proposées, ça donne après arrondis : 31 37 45 54 64 77 93 111 134 160 193
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  5. #5
    Membre du Club
    Homme Profil pro
    Consultant SAP (Abap)
    Inscrit en
    février 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant SAP (Abap)
    Secteur : Conseil

    Informations forums :
    Inscription : février 2015
    Messages : 26
    Points : 40
    Points
    40

    Par défaut

    Merci pour ta réponse

    En fait, j'ai déjà mis en place ma feuille de calcul et ça marche pas trop mal.

    Je me suis rendu compte que ma formule "(x*3)+5" n'était pas vraiment exponentielle... .en tâtonnant un peu je suis arrivé avec cette formule "x2+2x" qui produit des résultats qui me conviennent bien

    Voici la feuille de calcul en question:
    Loterie.xlsx

  6. #6
    Responsable Qt


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherches
    Inscrit en
    août 2008
    Messages
    22 399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherches
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 22 399
    Points : 122 582
    Points
    122 582

    Par défaut

    Sauf que, stricto sensu, ça n'est toujours pas exponentiel .

    Une autre solution serait de partir d'une série de valeurs suivant une exponentielle, par exemple Formule mathématique, autant que de prix à distribuer, d'en faire la somme et de diviser par elle : on obtient alors une fraction de la somme totale à assigner à chaque prix.

    Plus formellement, pour un montant T à redistribuer, au rang i sur N, on aurait une somme Formule mathématique à donner (plus i est élevé, plus le montant sera élevé).
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions) ? Contactez-moi par MP.

    Nouveau ! Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  7. #7
    Membre expert
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2002
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : mai 2002
    Messages : 2 472
    Points : 3 890
    Points
    3 890

    Par défaut

    salut

    tout ceci est vrai en théorie mais dans le réel pour la répartition je te conseil dans la dernière boucle de réajuster
    afin de repartir tout la cagnotte et ainsi éviter les problème d'arrondi.
    S[J] = TOTAL -S[1]+...+S[J-1]
    si j'ai tout compris tu créer donc un paquet de mini cagnotte repartie aléatoirement au participant
    les différents montants sur les différents participants... tout ceci me parait pas être totalement juste.
    n'aurais tu pas un critère autre que le montant a repartir.


    exemple tu te trouve sur un site ... tu as un Cagnotte de 1000.
    les intervenant poste des réponse tout les mois.
    on imagine que la totalité des réponse est de 300 post
    reparti en 4 intervenant ainsi
    1 = 200
    2 = 50
    3 = 25
    4 = 25
    (arrondi a 2) (Entier)
    1 = 200/300 => 0.66666... => 666.67 => 667
    2 = 50/300 => 0.16666... => 166.67 => 167
    3 = 25/300 => 0.08333... => 83.33 => 83
    4 = 25/300 => 0.08333... => 83.33 => 83
    dans le cas de ton jeu video tu pourrais prendre le temps passé à jouer ou tout autre critère quantifiable
    cette répartition serait à mon avis plus juste mais ce n'est que mon avis
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  8. #8
    Membre du Club
    Homme Profil pro
    Consultant SAP (Abap)
    Inscrit en
    février 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant SAP (Abap)
    Secteur : Conseil

    Informations forums :
    Inscription : février 2015
    Messages : 26
    Points : 40
    Points
    40

    Par défaut

    Citation Envoyé par dourouc05 Voir le message
    Sauf que, stricto sensu, ça n'est toujours pas exponentiel .
    Arf, j'ai jamais vraiment été une lumière en maths et puis toutes ces notions ont 30 ans pour moi !
    En fait, j'ai peut être utilisé le mauvais terme.
    Tout ce que je souhaitais c'est que la progression des lots ne soit pas linéaire, mais vraiment que le premier gagne un gros lot. En représentant ça sur un graph dans ma tête, je vois une courbe qui part quasiment plate (les derniers lots) et qui grimpe.... bah.... "exponentiellement" presque à la verticale pour les premiers lots.

    Après la formule que j'ai trouvé me génère des montants qui me conviennent bien donc je pense pas la changer pour le moment

    @Anapurna
    En fait, justement, nous ne souhaitons pas indexer ça sur le temps de jeu des joueurs. Notre communauté est à la base, une communauté de personnes adultes, ayant un emploi et ne jouant que 2 ou 3h max par jour. Comme on est pas sectaires, on accepte aussi les joueurs qui ont plus voir beaucoup plus de temps de jeu et nous essayons de palier du mieux qu'on peut à ces différences pour que tout le monde puisse profiter du jeu.
    Les ventes réalisées par les admins du serveur permettent aux joueurs d'obtenir des matériaux 4 fois moins chers que les prix pratiqués par les vendeurs du jeu.
    Dans la pratique, c'est principalement les joueurs avec un gros temps de jeu qui profitent de ce marché discount.
    La loterie permet donc de redistribuer cet argent, alors certes par forcément de manière équitable car il y a un tirage au sort mais ça fait aussi le charme du concept....

    Par exemple, cette semaine la cagnotte est de 25 000 pièces d'or dont 20 000 ont été fournies par un seul et même joueur. Quelque part, ce joueur à une chance de récupérer 9 023 pièces d'or.

    Cette loterie à été mise ne place et décidée avec les joueurs. D'ailleurs, les gros joueurs étaient d'avis d'appliquer un ratio en fonction du temps de jeu pour qu'ils aient moins de chance encore que les joueurs occasionnels de gagner. Chose que nous avons pas fait car trop contraignant à mettre en place.

    Merci en tout cas pour vos réponses

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Récupérer une donnée dans une cellule pour une variable
    Par zooffy dans le forum VBA Access
    Réponses: 5
    Dernier message: 27/06/2017, 17h58
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 13h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 14h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 14h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 14h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo