Bonjour, cliquez-ici pour vous inscrire et participer au forum.
  • Login:



+ Répondre à la discussion
Page 1 sur 4 12 3 DernièreDernière
Affichage des résultats 1 à 15 sur 48

Trouver les x,y,z tel que x*y*z = N

  1. Floklo

    Date d'inscription
    juillet 2017
    Âge
    23
    Messages
    49

    Trouver les x,y,z tel que x*y*z = N

    Bonjour je cherche juste à programmer une méthode qui trouve tout les x,y,z (entiers) tel que x*y*z = N (N un entiers aussi)

    Le programme marche mais me donne aussi toutes les "redondances".
    Quelqu’un connait-il une méthode pour éviter d'avoir en sortie les même triplets dans un ordre différent ?

    Le code est en python, j'ai mis N = 36 mais il peut être quelconque.

    Merci
    Cordialement

    Code:
    x = int
    y= int
    z=int
    
    liste_triplets = []
    
    N = 36
    
    for i in range(1,N):
        
        x = i
        
        for j in range(1,N):
            
            y = j
            
            for k in range(1,N):
                
                z =k
                
                if x*y*z == N:
                    
                    liste_nbr = [x,y,z]
                    liste_triplets.append(liste_nbr)
                    
    print liste_triplets

    -----

     


    • Publicité



  2. ansset

    Date d'inscription
    novembre 2009
    Localisation
    Fresnes
    Âge
    57
    Messages
    23 581

    Re : Trouver les x,y,z tel que x*y*z = N

    Et si tu les listes par ordre croissants pour commencer x<=y<=z, puis ( c'est le cas ici ) que tu élimines les doublons exacts ( 1*6*6 ) ?
    y'a quelque chose qui cloche là dedans, j'y retourne immédiatement !
     

  3. Merlin95

    Date d'inscription
    octobre 2015
    Messages
    528

    Re : Trouver les x,y,z tel que x*y*z = N

    Citation Envoyé par Floklo Voir le message
    Quelqu’un connait-il une méthode pour éviter d'avoir en sortie les même triplets dans un ordre différent ?
    Pour ne pas avoir de "redondances" tu peux modifier le code ainsi :

    Code:
    x = int
    y= int
    z=int
    
    liste_triplets = []
    
    N = 36
    
    for i in range(1,N):
        
        x = i
        
        for j in range(i,N):
            
            y = j
            
            for k in range(j,N):
                
                z =k
                
                if x*y*z == N:
                    
                    liste_nbr = [x,y,z]
                    liste_triplets.append(liste_nbr)
                    
    print liste_triplets
    Dernière modification par Merlin95 ; 23/08/2017 à 16h20.
     

  4. ansset

    Date d'inscription
    novembre 2009
    Localisation
    Fresnes
    Âge
    57
    Messages
    23 581

    Re : Trouver les x,y,z tel que x*y*z = N

    marches pas dans tous les cas, ici par exemple (1,6,6) est solution et le dernier k n'est pas strictement supérieur à j
    y'a quelque chose qui cloche là dedans, j'y retourne immédiatement !
     

  5. Merlin95

    Date d'inscription
    octobre 2015
    Messages
    528

    Re : Trouver les x,y,z tel que x*y*z = N

    Citation Envoyé par ansset Voir le message
    marches pas dans tous les cas, ici par exemple (1,6,6) est solution et le dernier k n'est pas strictement supérieur à j
    J'ai modifié le code effectivement de mon message précédent.
     


    • Publicité



  6. Floklo

    Date d'inscription
    juillet 2017
    Âge
    23
    Messages
    49

    Re : Trouver les x,y,z tel que x*y*z = N

    Ah merci Merlin !

    J'ai aussi pris la remarque de Ansset (après je sais pas si c'est se que tu voulais me faire comprendre) mais j'ai changé modifié ça:
    Code:
    x = int
    y= int
    z=int
    
    liste_triplets = []
    
    N = 36
    
    
    for i in range(1,N):
        
        x = i
        
        for j in range(1,N):
            
            y = j
            
            for k in range(1,N):
                
                z =k
                
                if x*y*z == N:
                    
                    if z >= y and y >= x:  #modification
                        
                        liste_nbr = [x,y,z]
                        liste_triplets.append(liste_nbr)
                    
                    
    print liste_triplets
    Et ça à l'air de marcher pour tout les cas.
    Et pour les doublons se n'est pas grave, je les gardes

    Merci à vous deux !
     

  7. ansset

    Date d'inscription
    novembre 2009
    Localisation
    Fresnes
    Âge
    57
    Messages
    23 581

    Re : Trouver les x,y,z tel que x*y*z = N

    Citation Envoyé par Merlin95 Voir le message
    J'ai modifié le code effectivement de mon message précédent.
    je viens de voir....
    on a "parlé" en même temps.
    dommage pour les doublons à la fin, on peut les éliminer pour faire "propre".
    cordialement à tous.
    y'a quelque chose qui cloche là dedans, j'y retourne immédiatement !
     

  8. ansset

    Date d'inscription
    novembre 2009
    Localisation
    Fresnes
    Âge
    57
    Messages
    23 581

    Re : Trouver les x,y,z tel que x*y*z = N

    ps; pas compris le dernier code proposé par Floklo, puisqu'il fait repartir j de 1, tout comme k !!??
    y'a quelque chose qui cloche là dedans, j'y retourne immédiatement !
     

  9. Floklo

    Date d'inscription
    juillet 2017
    Âge
    23
    Messages
    49

    Re : Trouver les x,y,z tel que x*y*z = N

    Tu veux dire enlever les solutions avec des doublons dedans ? je ne comprend pas ?
     

  10. Floklo

    Date d'inscription
    juillet 2017
    Âge
    23
    Messages
    49

    Re : Trouver les x,y,z tel que x*y*z = N

    Citation Envoyé par ansset Voir le message
    ps; pas compris le dernier code proposé par Floklo, puisqu'il fait repartir j de 1, tout comme k !!??
    Oui le code que j'ai mis marche, mais c'est vrai que c'est bête d'avoir laissé j et k commencé par 1. Je n'y avais pas pensé.*

    D’où les redondance en plus...
     

  11. ansset

    Date d'inscription
    novembre 2009
    Localisation
    Fresnes
    Âge
    57
    Messages
    23 581

    Re : Trouver les x,y,z tel que x*y*z = N

    Citation Envoyé par Floklo Voir le message
    Tu veux dire enlever les solutions avec des doublons dedans ? je ne comprend pas ?
    oui, ( on peut même parler potentiellement de triplet ici si tu fais varier i ,j et k de 1 à N )
    en prenant des valeurs supérieures ( mais pas strictement ) on élimine beaucoup de solutions redondantes.
    ne restent celle avec 2 ou 3 chiffres identiques.
    qui sont facile à identifier.
    y'a quelque chose qui cloche là dedans, j'y retourne immédiatement !
     

  12. Merlin95

    Date d'inscription
    octobre 2015
    Messages
    528

    Re : Trouver les x,y,z tel que x*y*z = N

    Citation Envoyé par ansset Voir le message
    oui, ( on peut même parler potentiellement de triplet ici si tu fais varier i ,j et k de 1 à N )
    en prenant des valeurs supérieures ( mais pas strictement ) on élimine beaucoup de solutions redondantes.
    ne restent celle avec 2 ou 3 chiffres identiques.
    qui sont facile à identifier.
    Je ne suis pas sûr à 100% mais avec la solution en prenant les valeurs supérieures ou égales, je crois qu'il n'y a plus de doublons.
    Dernière modification par Merlin95 ; 23/08/2017 à 17h02.
     

  13. ansset

    Date d'inscription
    novembre 2009
    Localisation
    Fresnes
    Âge
    57
    Messages
    23 581

    Re : Trouver les x,y,z tel que x*y*z = N

    ben si, le code, tel que je le lis, donne à la fois 1,6,6 et 1,6,6 par exemple.
    et s'il s'agissait de 2^3 on aurait 3 fois 2,2,2 !

    sauf si on élimine une solution "déjà" obtenue, ce qui n'est pas dans le code.
    Dernière modification par ansset ; 23/08/2017 à 17h05.
    y'a quelque chose qui cloche là dedans, j'y retourne immédiatement !
     

  14. Merlin95

    Date d'inscription
    octobre 2015
    Messages
    528

    Re : Trouver les x,y,z tel que x*y*z = N

    Non je ne vois pas.

    pour N = 13, le code va tester :
    1, 1, 1
    1, 1, 2
    ...
    1, 1, 13
    ...
    1, 5, 5
    1, 5, 6
    ...
    1, 5, 13
    1, 6, 6
    1, 6, 7
    1, 6, 8
    ...
    1, 6, 13
    1, 7, 7
    1, 7, 8
    1, 7, 9
    ...
    1, 7, 13
    ...
    Dernière modification par Merlin95 ; 23/08/2017 à 17h10.
     

  15. ansset

    Date d'inscription
    novembre 2009
    Localisation
    Fresnes
    Âge
    57
    Messages
    23 581

    Re : Trouver les x,y,z tel que x*y*z = N

    tu me parle de N=13, ( nb premier ) alors que l'énoncé initial parle de N=36 qui est un carré !
    d'ailleurs, pas compris tes solutions !
    Dernière modification par ansset ; 23/08/2017 à 17h12.
    y'a quelque chose qui cloche là dedans, j'y retourne immédiatement !
     


    • Publicité







Sur le même thème :





 

Discussions similaires

  1. trouver n
    Par AsmaSasuki dans le forum Mathématiques du supérieur
    Réponses: 6
    Dernier message: 20/12/2015, 01h15
  2. Où trouver un RWT 05 ?
    Par bartsamtab2 dans le forum Électronique
    Réponses: 3
    Dernier message: 02/08/2014, 14h43
  3. ou trouver des Led IR 8 mm 840 nm ?
    Par invite087433723 dans le forum Électronique
    Réponses: 4
    Dernier message: 28/12/2009, 12h10
  4. Réponses: 5
    Dernier message: 15/11/2008, 19h39
  5. Ou trouver ca ?
    Par Tix dans le forum Électronique
    Réponses: 8
    Dernier message: 01/08/2006, 08h50