Partage
  • Partager sur Facebook
  • Partager sur Twitter

récupéré tout les possibilité

    12 janvier 2023 à 11:40:39

    bonjour dsl pour les fautes

    J'ai 7 case ou je peut mètre des jetons a une valeur max de

    100 jeton sur 1 ,

    50 sur 2 ,

    25 sur 3 ,

    12 sur 4 ,

    10 sur 5 ,

    5 sur 6 et

    5 sur 7 ,

    je peut mettre sur plusieurs case en même temps et je ne suis pas obliger de pauser sur des cases

    je voudrais cree un programe en python qui recherche

    tout les possibilité paussoblilté et stock dans un tableau sous forma [1 : nombre de jetton , 2 : nombre de jetton etc.] et faire ça pour tout les possibilité qui existe

    mais je n arrive pas a trouver comment faire je ne trouve rien je pence que je charche mal si quelqu un a des idee pour comment faire je vous remercie 

    pour le moment je suis partit sur cela

    import random
    
    #je declaire tout les valeur nessesaire
    # Initialise le nombre de jetons à 25
    jetons = 25
    
    # Initialise des mise max
    cases = [[1, 100], [2, 50], [3, 25], [4, 12], [5, 10], [6, 5], [7, 5]]
    
    # initialise le dictionnaire pour stocker les résultats
    resultats = {}
    
    # tout les combinaisont paussible
    

    mais apres je sais pas ou commencer



    • Partager sur Facebook
    • Partager sur Twitter
      12 janvier 2023 à 17:14:55

      Ton énoncé n'est pas clair.
      Tu as 25 jetons au maximum, et tu veux pouvoir en placer 100 dans la première case?
      Est-ce que tous tes jetons sont identiques?
      Ta liste "cases" peut se simplifier:
      cases = [100, 50, 25, 12, 10, 5, 5]
      L'indice remplacera le numéro de la case.
      Que veux-tu mettre exactement dans le dictionnaire.
      Veux-tu faire un tirage au hasard (le pourquoi du module random) ou calculer le nombre de possibilités?

      La phrase suivante est très ambigüe:

      > je peut mettre sur plusieurs case  en même temps et je ne suis pas obliger de pauser sur des cases

      Pas sur des cases, ça veut dire quoi? Tu ignores et tu fais un nouvel essai?

      -
      Edité par PierrotLeFou 12 janvier 2023 à 18:11:34

      • Partager sur Facebook
      • Partager sur Twitter

      Le Tout est souvent plus grand que la somme de ses parties.

        13 janvier 2023 à 13:42:11

        Bonjour,

        "..pauser sur des cases"

        tu veux dire faire une pause sur une case, ou bien poser un jeton sur une case ?

        • Partager sur Facebook
        • Partager sur Twitter
          15 janvier 2023 à 18:28:09

          Phil_1857 a écrit:

          Bonjour,

          "..pauser sur des cases"

          tu veux dire faire une pause sur une case, ou bien poser un jeton sur une case ?


          pauser jeton sur un case exemple : 

          PierrotLeFou a écrit:

          Ton énoncé n'est pas clair.
          Tu as 25 jetons au maximum, et tu veux pouvoir en placer 100 dans la première case?

          non je peut en metre 100 max et min 0

          Est-ce que tous tes jetons sont identiques?

          oui 

          Pas sur des cases, ça veut dire quoi? Tu ignores et tu fais un nouvel essai?

          en gros je peut metre des jeton sur autent de case paussible (7) mais je peut aussi en metre que si 1 case

          et je veut simplement avoir un retour ( tableau ) avec tout les paussibilité paussible exemple 

          [1:[1:0,2:0,3:0,4:0,5:0,6:0,7:1]2:[1:0,2:0,3:0,4:0,5:0,6:1,7:0].......N:[1:25,2:0,3:0,4:0,5:0,6:0,7:0]......]

          • Partager sur Facebook
          • Partager sur Twitter
            15 janvier 2023 à 19:08:09

            Pourquoi dis-tu que tu as 25 jetons et que tu peux en mettre 100 dans la première case?
            Si je fais abstraction de cette contrainte, le nombre de possibilités sera égal au produit de tes capacités:
            >>> 100*50*25*12*10*5*5                                                                                                 
            375000000
            Tu es certain de vouloir tout afficher?

            edit: c'est pire que ça, il faut considérer le cas où il y a 0 jetons dans une case ...

            -
            Edité par PierrotLeFou 15 janvier 2023 à 19:10:33

            • Partager sur Facebook
            • Partager sur Twitter

            Le Tout est souvent plus grand que la somme de ses parties.

              15 janvier 2023 à 22:10:43

              PierrotLeFou a écrit:

              Pourquoi dis-tu que tu as 25 jetons et que tu peux en mettre 100 dans la première case?

              car je peux en mètre 100 mais j'en ai 25 au départ mais la suite du projet que je veux faire je pourrais gagner des jetons c'est pour ça mais pour le moment je par du principe que j'en ai que 25

              edit: c'est pire que ça, il faut considérer le cas où il y a 0 jetons dans une case ...

              ouai je sais mais c'est un petit projet perso etc c'est normal que se soit delirent et pas très intéressant et ni productif haha ha

              merci en tout cas 

              -
              Edité par NÉKOgrile 15 janvier 2023 à 22:12:53

              • Partager sur Facebook
              • Partager sur Twitter
                16 janvier 2023 à 1:45:22

                Le code suivant donne toutes les façons de placer de 0 à 25 jetons dans les cases en respectant les limites des cases.
                Il utilise le principe du "compteur kilométrique". Cela donne 1977381 combinaisons.
                Si on ajoute ou enlève des jetons, ça sera sans doute moins évident. Même chose si tous les jetons doivent être placés.

                edit: en fait ce code ne donne pas toutes les combinaisons, on n'a pas par exemple le cas où on a un seul jeton dans chaque case.

                Je devrai trouver un autre principe qui s'approchera de la récursivité.

                Il faudra que je sache vraiment si je peux avoir moins de 25 jetons placés dans le jeu ou s'ils doivent être tous placés.

                Le nombre de combinaisons sera beaucoup plus grand si je n'ai pas besoin de tous les placer. car je devrai refaire le calcul pour 0, 1, 2, 3, ... 25 jetons.

                -
                 
                cases = [100, 50, 25, 12, 10, 5, 5]
                jetons = 25
                lg = len(cases)
                placer = [0] * lg
                resultats =[]
                i = 0
                while i < lg:
                    resultats.append(placer[:])
                    i = 0
                    while i < lg and (placer[i] >= cases[i] or jetons == 0):
                        jetons += placer[i]
                        placer[i] = 0
                        i += 1
                    if i >= lg: break
                    if jetons > 0:
                        placer[i] += 1
                        jetons -= 1
                print(len(resultats))

                -
                Edité par PierrotLeFou 16 janvier 2023 à 2:06:21

                • Partager sur Facebook
                • Partager sur Twitter

                Le Tout est souvent plus grand que la somme de ses parties.

                  16 janvier 2023 à 13:02:54

                  Bonjour,

                  "pauser jeton sur un case exemple : "

                  ah ok, tu veux poser un jeton sur une case ...

                  • Partager sur Facebook
                  • Partager sur Twitter
                    16 janvier 2023 à 13:08:21

                    PierrotLeFou a écrit:

                    Il faudra que je sache vraiment si je peux avoir moins de 25 jetons placés dans le jeu ou s'ils doivent être tous placés.

                    deja merci pour tout et non les 25 jetons ne sont pas obligatoirement placer merci encor 

                    Grâce à toi je vais avoir tous les résultats possibles etc. Mais le truc c'est que c'est le premier partit de ce projet

                    La suite va être un peu plus compliquer dans le sens où je vais devoir faire un bout de code qui me permettra de faire en sorte que tous les possibilités devront être faite donc exemple : [1:[1:0,2:0,3:0,4:0,5:0,6:0,7:1]2:[1:0,2:0,3:0,4:0,5:0,6:1,7:0]

                    Puis chaque case est équivalente à un numéro on a déjà ça : case 1, case 2 …

                    Mais le truc c'est que les case ne sont pas tous égaux dans le tirage ce que je veux dire c'est que la case 1 à 46% de chance d'être bon la case 2 à un autre nombre etc. et chaque case ont un nombre différent de tomber dessus ce qui nous ramène a 100% si on cumule tout ce qui est normal

                    Donc oui c'est une sorte de roue de la loterie en gros

                    Puis ce que je devrais faire c'est que le code devrait tester comme dit au-dessus toutes les combinaisons de départ et il s’arrêtera qu'avec 2 facteurs :

                    Le premier est quand il Attin 0 jeton il stop

                    la deuxième est si après 100 partis il ne sait pas arrêter et qu'il continue à gagner alors il vas me mètre le résultat dans un tableau et il affichera quel est le meilleur moyen de gainer avec un schéma qui ce répète (en gardent toujours le même paterne exemple : [1:[1:0,2:0,3:0,4:0,5:0,6:0,7:1] )

                    -
                    Edité par NÉKOgrile 16 janvier 2023 à 13:30:27

                    • Partager sur Facebook
                    • Partager sur Twitter
                      16 janvier 2023 à 17:58:56

                      Je pense que tu ne saisis pas clairement toi-même le problème. :)
                      Tu as 7 cases, d'accord. Elles ont des "capacités" différentes? C'est à dire que je peux mettre un certain nombre de jetons dans chaque case.
                      Tant qu'une case n'est pas pleine, la probabilité de placer un jeton dans une case est 1/7 (14.2857%)
                      Je ne vois pas d'où tu sort ton 46%, ça serait plutôt 48.3% ...
                      Mon code précédent, comme je l'ai précisé plus tard, ne donne pas toutes les possibilités.
                      J'ai fait un autre code, récursif celui-là, qui devrait donner toutes les possibilités.
                      Je veux mieux le tester avant de le donner.
                      Si tu pouvais mieux décrire l'algorithme, ça serait une bonne idée.
                      + les conditions initiales:
                        * nombre de jetons
                        * ce qu'il y a dans les cases au début
                      + je fais un tirage:
                        * mon tirage me donne quoi? La case où je pourrais placer le jeton?
                        * si je ne peux pas, je fais quoi?
                      + quand je n'ai plus de jetons, j'arrête.
                        * comment je peux gagner un jeton?
                      + etc. ...
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Le Tout est souvent plus grand que la somme de ses parties.

                        16 janvier 2023 à 19:46:58

                        Ok je reprends tout

                        J’ai une roue avec 7 valeur dessus (c’est pour ça 7 case ) la roue possède plusieurs fois le même numéro qui est équivalent à 1 fois la case 7. 1 fois la case 6 .2 fois la case 5. 4 fois la case 4 …

                        Je peux poser sur tous les case comme bon me semble mais il y a un montent max par case qui équivaux à :

                        100 jeton sur 1 ,

                        50 sur 2 ,

                        25 sur 3 ,

                        12 sur 4 ,

                        10 sur 5 ,

                        5 sur 6 et

                        5 sur 7 ,

                        Est les cases on des nombres inscrit qui sont :

                        1 sur 1 ,

                        3 sur 2 ,

                        5 sur 3 ,

                        10 sur 4 ,

                        20 sur 5 ,

                        50 blanc sur 6 et

                        50 noir sur 7 ,

                        Maintenant que c’est expliquer je vais expliquer les règles du jeu

                        Parton du principe que j’ai mis 3 jetons sur la 7 em case (soit sur 50 noir) et 5 jetons sur la 3 em case (soit 5) et que la roue tombe sur la 3 em case ( sur 5 ) alors je perd tout les jeton qui ne sont pas sur la 3 em case (donc – les jetons qui sont sur la 7 em case (50 noir) (-3) ) et je récupère ma mise + ma mise * le numéro de la case soit 5

                        Et je pars avec 25 jetons et si je suis a 0 je perd

                        Le programme va devoir faire en sorte de trouver parmi tous les combinaisons possibles quel est le meilleur moyen de gagner (si je ne change jamais de stratégie)

                        si jen ais pas bien expliquer je peut encors reprendre
                        • Partager sur Facebook
                        • Partager sur Twitter
                          17 janvier 2023 à 19:35:20

                          > J’ai une roue avec 7 valeur dessus (c’est pour ça 7 case )
                          > la roue possède plusieurs fois le même numéro qui est équivalent
                          Donc, je peux avoir plus d'une case 1, ou 2, ...
                          > à 1 fois la case 7. 1 fois la case 6 . 2 fois la case 5. 4 fois la case 4 …
                          Et les autres cases?
                          Pour le tirage, je ferais avec choices (avec un S):
                              tirage = random.choices([1, 2, 3, 4, 5, 6, 7], [..., 4, 2, 1, 1])
                          Pour un seul résultat de tirage.
                          Je ne sais pas vraiment comment aborder le problème. Ça ressemble plus à de l'intelligence artificielle qu'à des combinaisons.
                          Je te reviens si j'ai une nouvelle idée ...

                          edit:

                          Donc, les cases ont deux attributs:
                          + le nombre de jetons maximum qu'on peut y placer.
                          + le facteur de multiplication de la mise si on gagne.
                          Peut-être que cases pourrait être un dictionnaire:
                          cases = {1: (100, 1), 2: (50, 3), 3: (25, 5), 4: (12, 10), 5: (10, 20), 6: (5, 50), 7: (5, 50)}

                          re-edit:
                          Je te donne le code correct (cette fois-ci) qui me donne toutes les combinaisons possibles pour un nombre donné de jetons.
                          Je n'ai pas modifié  cases  pour en faire un dictionnaire:
                          (Ça fait beaucoup de possibilités)
                           
                          cases = [100, 50, 25, 12, 10, 5, 5]
                          lg = len(cases)
                          jetons = 25
                          placer = [0] * lg
                          resultats = []
                          def combinaisons(n, i):
                              if i >= lg or n == 0:
                                  if n == 0:
                                      resultats.append(placer[:])
                                  return
                              for k in range(n+1):
                                  m = min(n-k, cases[i])
                                  placer[i] = m
                                  combinaisons(n - m, i+1)
                          combinaisons(jetons, 0)
                          print(len(resultats))
                           
                          538285

                          re-re-edit:
                          Je te donne un code naïf pour le jeu. À l'endroit ou je crée la liste placer, c'est là que se fera la stratégie.
                           
                          from random import choices
                          cases = {1: (100, 1), 2: (50, 3), 3: (25, 5), 4: (12, 10), 5: (10, 20), 6: (5, 50), 7: (5, 50)}
                          lg = len(cases)
                          jetons = 25
                          while jetons > 0:
                              # Je place arbitrairement 3 jetons dans chaque case ...
                              placer = [3] * lg
                              gagnant = choices([1, 2, 3, 4, 5, 6, 7], [32, 16, 8, 4, 2, 1, 1])[0] - 1   # Pour les indices
                              gagnant = 6   # Je triche, ça boucle infiniment
                              jetons += cases[gagnant+1][1] * placer[gagnant] - sum(m for j, m in enumerate(placer) if j != gagnant)
                          print("Tu as perdu")

                          Quand j'aurai un peu de temps, je vais tester par force brute s'il y a des combinaisons où on gagne (ou obtient) plus quel que soit le résultat du tirage.

                          Ça peut donner plus de 10 millions de tests. Pas si affreux que ça. :)

                          -
                          Edité par PierrotLeFou 18 janvier 2023 à 7:23:21

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Le Tout est souvent plus grand que la somme de ses parties.

                            18 janvier 2023 à 9:26:36

                            Déjà un gtand merci a toi d' avoir mis de ton temps

                            >Donc, je peux avoir plus d'une case 1, ou 2, ...

                            Oui exactement comme cela

                            >Et les autres cases?

                             1 fois la case 7. 1 fois la case 6 . 2 fois la case 5. 4 fois la case 4. 8 fois la case 3 . 12 fois la case 2 et 24 fois la case 1


                            Je vais tester ton programme et voir comment tout ce passe et comme tu a dit si tu a le temps pour continuer je te répond déjà merci encore et aussi c' est un projet perso donc ce n ai pas pressent donc ne vois pas sa comme un objectif a rentre tôt et encore merci 


                            le dernier bout de code jai las pas trop compris avec la boocle infini et apres tu a pas un moyen de faire en sorte que le code trouver tout les combinaison paussible et apres il les exploite ?

                            -
                            Edité par NÉKOgrile 18 janvier 2023 à 11:00:42

                            • Partager sur Facebook
                            • Partager sur Twitter
                              18 janvier 2023 à 19:03:17

                              Selon le code suivant, il n'existe aucune stratégie qui permet de gagner à tout coup.
                              C'est tout à fait normal, car les casino s'arrangent pour que les gens perdent à long terme.
                              La stratégie de mettre 3 jetons sur chaque case ne marchait pas car la probabilité de tomber souvent sur une case avantageuse est trop faible à la longue.
                              C'est pour cela que j'ai dit que je trichais en donnant toujours un résultat gagnant. C'est ça qui me mettait dans une boucle infinie.
                              Ce qui est contraire à la réalité.
                              Note: si tu essaies le code, attends-toi à ce que ça soit assez long. Ça prend plus de 20 secondes sur mon ordi qui est assez rapide.
                              -
                              from random import choices
                              def combinaisons(n, i):
                                  if i >= lg or n == 0:
                                      if n == 0:
                                          resultats.append(placer[:])
                                      return
                                  for k in range(n+1):
                                      m = min(n-k, cases[i])
                                      placer[i] = m
                                      combinaisons(n - m, i+1)
                              #
                              cases = [100, 50, 25, 12, 10, 5, 5]
                              lg = len(cases)
                              gains = [1, 3, 5, 10, 20, 50, 50]
                              strategies = []
                              for jetons in range(1, 25+1):
                                  placer = [0] * lg
                                  resultats = []
                                  combinaisons(jetons, 0)
                                  for placer in resultats:
                                      compte = 0
                                      for gagnant in range(lg):
                                          if gains[gagnant] * placer[gagnant] >= sum(mises for essai, mises in enumerate(placer) if essai != gagnant): compte += 1
                                      if compte == lg: strategies.append(placer[:])
                              print(len(strategies))
                              if len(strategies) > 0: print(strategies)
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Le Tout est souvent plus grand que la somme de ses parties.

                                19 janvier 2023 à 8:54:14

                                ok ok merci pour tout et sur du cour terme comme max 100 a 200 partie tu pence qu il y a une strategie ? 

                                j ai demender a tacht GPT ( ouai j ai eu la flem de le faire mdr ) ( je suis sur trop de project en meme temps haha ) 

                                et j ai eu sela :

                                import random
                                
                                # Valeurs sur la roue et leur probabilité de sortie
                                wheel_values = {
                                    50: 1,
                                    20: 2,
                                    10: 4,
                                    5: 8,
                                    3: 12,
                                    1: 24
                                }
                                
                                # Nombre de jetons initial pour le joueur
                                initial_tokens = 25
                                
                                # Nombre de parties à jouer pour chaque combinaison de mises
                                num_plays = 200
                                
                                # Fonction pour simuler une partie avec une combinaison de mises donnée
                                
                                
                                def play_game(bets):
                                    tokens = initial_tokens
                                    for i in range(num_plays):
                                        # Choisir une valeur aléatoire sur la roue en fonction de leur probabilité
                                        result = random.choices(list(wheel_values.keys()),
                                                                weights=list(wheel_values.values()))[0]
                                        if result in bets:
                                            tokens += result * bets[result]
                                        else:
                                            tokens -= sum(bets.values())
                                        if tokens <= 0:
                                            return tokens
                                    return tokens
                                
                                
                                # Tester toutes les combinaisons de mises possibles
                                best_bets = {}
                                best_tokens = 0
                                for i in range(1, initial_tokens+1):
                                    for j in range(0, i+1):
                                        for k in range(0, j+1):
                                            for l in range(0, k+1):
                                                for m in range(0, l+1):
                                                    for n in range(0, m+1):
                                                        for o in range(0, n+1):
                                                            if i+3*j+5*k+10*l+20*m+50*n <= initial_tokens:
                                                                bets = {1: i, 3: j, 5: k, 10: l, 20: m, 50: n}
                                                                tokens = play_game(bets)
                                                                if tokens > best_tokens:
                                                                    best_tokens = tokens
                                                                    best_bets = bets
                                
                                                                    # calculer le pourcentage de gain et de perte
                                gain_percentage = (best_tokens / initial_tokens) * 100
                                loss_percentage = 100 - gain_percentage
                                
                                # Afficher les résultats
                                print("Meilleures mises: ", best_bets)
                                print("Nombre de jetons gagnés: ", best_tokens)
                                print("Pourcentage de gain: {:.2f} %".format(gain_percentage))
                                print("Pourcentage de perte: {:.2f} %".format(loss_percentage))
                                

                                ce qui me dit que le meuilleur est quand meme de miser sur 1 et quelque fois sur 5 

                                donc en vrais ça eut ce tenir 

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  20 janvier 2023 à 4:29:49

                                  Si je change mon test pour garder les solutions où je gagne au moins 6 fois sur 7, j'obtiens 8015 possibilités.
                                  Bien sûr, je ne les ai pas affichées. :)
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Le Tout est souvent plus grand que la somme de ses parties.

                                  récupéré tout les possibilité

                                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                  • Editeur
                                  • Markdown