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 :

Recherche du nom d'un algo


Sujet :

Algorithmes et structures de données

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2011
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Recherche du nom d'un algo
    Bonsoir à tous.

    Une discussion avec un ami nous a amené sur un problème qui "semble" simple mais auquel on n'arrive pas a trouver une solution propre. Il est informaticien et je suis automaticien.

    La solution doit exister et doit deja porter un nom savant. Peut etre que vous pourrez nous renseigner.

    1) Nous avons une suite de N nombres aleatoires.
    2) Nous avons un nombre x

    Comment chercher dans cette liste tous les groupes de nombres dont la somme est egale à x

    Il doit sans doute y avoir un moyen aussi de limiter le nombre de termes maximum que composent la somme.

    Désolé si je m'exprime avec des mots mal adaptés, mais l'algo n'est pas mon domaine

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    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 619
    Points : 188 594
    Points
    188 594
    Par défaut


    C'est plutôt un problème classique d'interview technique . Ton problème correspond à la somme de sous-ensembles : https://fr.wikipedia.org/wiki/Probl%...sous-ensembles. Si tu utilises plus que deux nombres pour atteindre la valeur cible, tu risques d'avoir des problèmes de complexité algorithmique…

    Les techniques pour résoudre ce problème sont souvent des variantes d'un algo bourrin (tester toutes les combinaisons). Tu peux trier ton tableau de valeurs ; pour chaque valeur du tableau, tu sais quelle autre nombre tu cherches pour obtenir le nombre cible, tu peux utiliser une recherche binaire pour retrouver cet autre nombre. Si tu as des propriétés spécifiques sur ton tableau, comme uniquement des entiers "pas trop grands", tu peux regarder du côté d'algorithmes de tri spécifiques, comme https://fr.wikipedia.org/wiki/Tri_par_d%C3%A9nombrement, qui te permet aussi de ne plus utiliser de recherche binaire.
    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 expérimenté
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juillet 2020
    Messages : 352
    Points : 1 376
    Points
    1 376
    Par défaut
    Bonjour,

    Citation Envoyé par Spone Voir le message
    Une discussion avec un ami nous a amené sur un problème qui "semble" simple mais auquel on n'arrive pas a trouver une solution propre. Il est informaticien et je suis automaticien.
    Nobody's perfect

    Citation Envoyé par Spone Voir le message
    La solution doit exister et doit deja porter un nom savant. Peut etre que vous pourrez nous renseigner.

    1) Nous avons une suite de N nombres aleatoires.
    2) Nous avons un nombre x

    Comment chercher dans cette liste tous les groupes de nombres dont la somme est egale à x
    En fait, comme bien souvent en algorithmique, ce n'est pas la solution qui porte un nom mais le problème. Il s'agit d'un problème d'arithmétique nommé SUBSET-SUM dans la littérature anglophone.


    Citation Envoyé par Spone Voir le message
    Il doit sans doute y avoir un moyen aussi de limiter le nombre de termes maximum que composent la somme.
    Dans le problème général, non. Tu ne peux pas simplement trouver une limite simple au nombre de termes de la somme. Mais tu peux limiter ta recherche en fonction du nombre de termes. Par exemple, en utilisant un ensemble trié de nombres, tu peux trouver un somme de 1 terme en O(log n) en temps, 2 termes en O(n log n) et 3 termes en O(n²) ; dans un cadre plus général le problème est difficile à résoudre (NP-complet).

    Il y aune étude assez complète de ce problème dans Introduction to algorithms (Cormen, Leiserson, Rivest & Stein) sections 34.5.5 et 35.5.

  4. #4
    Candidat au Club
    Inscrit en
    Avril 2011
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci pour vos réponses. Nous allons regarder ça

Discussions similaires

  1. [VBA-E] Recherche le NOM d'un fichier ...
    Par le_sonic dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/04/2006, 11h34
  2. Rechercher un nom de colonne
    Par Oberown dans le forum Access
    Réponses: 4
    Dernier message: 15/04/2006, 13h22
  3. [VB.Net]recherche par nom
    Par souaddemaroc dans le forum Windows Forms
    Réponses: 7
    Dernier message: 30/03/2006, 10h40
  4. Réponses: 14
    Dernier message: 14/03/2006, 15h20
  5. Requête sélection : recherche par nom
    Par leeloo77 dans le forum Access
    Réponses: 7
    Dernier message: 17/02/2006, 15h39

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