IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Trouver des couples de valeurs


Sujet :

Algorithmes et structures de données

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 63
    Points : 75
    Points
    75
    Par défaut Trouver des couples de valeurs
    Bonjour bonjour,
    J'ai une petite question d'algo donc je viens vous voir.


    Je cherche la manière la plus efficace d'obtenir tous les couples tels que:

    Soit N (un nombre entier positif (ou nul))
    La totalité des couples (i,j) tels que -N <= i,j <= N et que la somme des valeurs absolues de i et j <= N


    Et comme un petit exemple est plus simple à comprendre:

    Prenons par exemple N=3
    Je cherche à obtenir les couple (i,j) suivants (j'ai fait un dessin, c'est pas très joli mais ça à le mérite d'être explicite)

    Nom : Untitled.png
Affichages : 205
Taille : 10,6 Ko

    Du coup j'ai tenté pas mal de trucs, j'ai réussi à le faire avec quelques "if" (et deux boucles imbriquées évidemment) mais je n'en suis pas satisfait, j'ai l'impression qu'on doit pouvoir faire mieux puisque dans ce cas j'itère sur beaucoup de couples qui ne respectent pas les conditions.
    Code JAVASCRIPT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for(var i = N*(-1); i < N; i++){
        for(var j = N*(-1); j < N; j++){
                  if(abs(i)+abs(j) <= N){
                      // OK
                  }
        }
    }

    Ensuite, j'ai tenté par exemple d'initialiser la seconde boucle avec un modulo de la première, bien évidemment ça ne donne pas le résusltat escompté...
    Code JAVASCRIPT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for(var i = N*(-1); i <= N; i++){ // loop on X
    			for(var j = (i%N); ???; j++){ // loop on Y, j'ai tenté quelques trucs différents pour les ???
                                    // print (i,j)
                           }
    }

    Voilà, donc je repose la question à la fin: je cherche la solution la plus efficace pour obtenir ces couples de valeurs (je ne cherche pas spécialement de code, j'ai l'impression que la question est plus mathématique qu'algorithmique mais bon )

    Merci à vous

    EDIT: le code n'est pas fonctionnel, il est là juste pour illustrer

  2. #2
    Responsable Qt & Livres


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

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

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 591
    Points
    188 591
    Par défaut


    Pour la boucle intérieure, à Formule mathématique donné, tu veux trouver tous les Formule mathématique tels que
    Formule mathématique
    En réécrivant un peu cette inégalité pour mettre l'inconnu à gauche et le connu à droite :
    Formule mathématique
    Par conséquent : et si tu utilisais pour ta boucle intérieure un Formule mathématique qui passe de Formule mathématique à Formule mathématique ?
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

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

    Pas de question d'ordre technique par MP !

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 63
    Points : 75
    Points
    75
    Par défaut
    Citation Envoyé par dourouc05 Voir le message


    Pour la boucle intérieure, à Formule mathématique donné, tu veux trouver tous les Formule mathématique tels que
    Formule mathématique
    En réécrivant un peu cette inégalité pour mettre l'inconnu à gauche et le connu à droite :
    Formule mathématique
    Par conséquent : et si tu utilisais pour ta boucle intérieure un Formule mathématique qui passe de Formule mathématique à Formule mathématique ?
    Wow.. si simple...
    Je me sens un peu con là, en effet c'est exactement ça merci à toi !

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

Discussions similaires

  1. Associer un résultat d'un calcul à des couples de valeurs
    Par wahouuu0 dans le forum Macros et VBA Excel
    Réponses: 39
    Dernier message: 04/05/2015, 13h43
  2. Réponses: 3
    Dernier message: 20/11/2014, 22h36
  3. Comment trouver des paires de valeurs ?
    Par Jimy6000 dans le forum Excel
    Réponses: 11
    Dernier message: 30/01/2008, 07h01
  4. Réponses: 12
    Dernier message: 02/03/2007, 11h33
  5. [Collection] Regrouper des couples clé/valeur
    Par webspeak dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 22/05/2006, 14h12

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