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 :

Jouable ou pas ?


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Par défaut Jouable ou pas ?
    Bonjour à tous,
    Un algo, qui d'une expression quelconque (limitée) donne les expressions équivalentes de toutes les variables de l'expression.
    Exemple: x=(a+b)*(c-d)/e
    On fixe des valeurs arbitraires pour calculer x.
    Puis par force brute on teste-calcule tous les arrangements
    Si valeur arrangement = valeurs variables afficher: variable = arrangement (expression)
    ça paraît jouabe mais je m'interroge sur le nombre d'arrangements en fonction de la longueur de l'expression (14 pour l'exemple).
    Quelqu'un aurait un tuyau pour ce nombre ? Merci.

  2. #2
    Membre Expert

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    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 : 1 333
    Billets dans le blog
    9
    Par défaut Jouable ou pas ?


    Citation Envoyé par valentin03 Voir le message
    Bonjour à tous,
    Un algo, qui d'une expression quelconque (limitée) donne les expressions équivalentes de toutes les variables de l'expression ...
    Il faut donc concevoir un programme de calcul formel, rien de moins !

    Citation Envoyé par valentin03 Voir le message
    ... Puis par force brute on teste-calcule tous les arrangements ...
    Le nombre de combinaisons (ici égal à 13!/(2!)2~1.56E9 pour 13 caractères, dont deux paires identiques) est trop élevé pour permettre un inventaire exhaustif.
    Quant à l'opération de "test-calcul", c'est plus vite dit que fait: il faut mettre au point des règles syntaxiques, dont la quantité deviendra rapidement ingérable en fonction du nombre et de la diversité des caractères présents.
    As-tu songé de plus au nombre démesuré de résultats intelligibles (donc grammaticalement corrects), mais tous faux à l'exception de l'un d'entre eux, pour chacune des variables ? Et au moyen d'identifier la bonne solution ?

    Il suffit de reprendre la relation citée: x=(a+b)*(c-d)/e
    pour imaginer ce que pourrait donner:
    - la permutation des termes (a, b, c, d, e),
    -celle des signes (+) et (-), ou le déplacement des parenthèses ...

    De plus tu pars ingénument d'une expression très simple, limitée aux opérations arithmétiques et dans laquelle chacun des paramètres n'intervient qu'une seul fois.
    Que se passerait-il dans les cas suivants ?

    x=(a+b)*(c+2*b)*(d+3*b)*(e+4*b)*(e+5*b)
    x=(a+b)*(c-d)/(e+b6)
    x=(a+b)*(c-d)/(e+2b)
    y=x*exp(-5*x)
    y = xx
    y=3*sin(x)+5*sin(x2)

    Il n'y a pas de solution explicite b = G(x, a, c, d, e) - pour les trois premières - ou x = G(y) pour les 3 autres.

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Par défaut
    @:wiwaxia: Aaargh... Je me doutais qu'il y avait un problème, j'avais vu poindre le "!" mais le: "TouS FauX sauf UN seul" que je ne soupçonnais pas, a de quoi glacer le sang.
    A combien de variables et d'opérateurs faudrait-il se limiter pour que ça soit jouable avec 100 000 combinaisons par exemple ?
    Sans tenir compte du : "Tous faux sauf un seul" (dont on pourrait bien reparler, une égalité étant une égalité).
    Je ne suis pas ingénu, je n'ai mis que les quatre opérateurs.
    Pour l'analyse syntaxique ça va, en mettant des espaces on peut faire du mot à mot, tester l'opérateur courant et traiter sur place, les parenthèses traitées à part et réintégrées en avançant.
    Je vais me renseigner sur quézaquo que le calcul formel.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Analyste-programmeur
    Inscrit en
    Décembre 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2014
    Messages : 52
    Par défaut
    Citation Envoyé par wiwaxia Voir le message
    De plus tu pars ingénument d'une expression très simple, limitée aux opérations arithmétiques et dans laquelle chacun des paramètres n'intervient qu'une seul fois.
    Que se passerait-il dans les cas suivants ?

    x=(a+b)*(c+2*b)*(d+3*b)*(e+4*b)*(e+5*b)
    x=(a+b)*(c-d)/(e+b6)
    x=(a+b)*(c-d)/(e+2b)
    y=x*exp(-5*x)
    y = xx
    y=3*sin(x)+5*sin(x2)

    Il n'y a pas de solution explicite b = G(x, a, c, d, e) - pour les trois premières - ou x = G(y) pour les 3 autres.
    Un autre problème provient du fait que le domaine de chaque variable n'est pas défini. Est-ce qu'il s'agit d'équations diophantiennes ou tes variables et le résultat peuvent être des fractions? Les variables sont limitées à quels intervalles de valeur : [0 à 100] ou [-123456789, 123456789] ou plus?

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Par défaut
    Oh purée... bstjean ne me rajoute pas des problèmes. "On ne connaît rien ou à peu près de la vie de Diophante, même l'époque à laquelle il a vécu reste très incertaine1. Son œuvre est en partie perdue".
    Trois excellents motifs pour le passer sous silence; contentons nous de choses simples.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Analyste-programmeur
    Inscrit en
    Décembre 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2014
    Messages : 52
    Par défaut
    En fait, s'il s'agit d'équations diophantiennes (https://fr.wikipedia.org/wiki/%C3%89..._diophantienne), ça facilite quelque peu les choses comme les variables et le résultat doivent TOUS être des entiers!

  7. #7
    Membre Expert

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    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 : 1 333
    Billets dans le blog
    9
    Par défaut Jouable ou pas ?
    Bonjour,

    Je m'en tenais au strict énoncé du problème posé
    Citation Envoyé par valentin03 Voir le message
    ... Un algo, qui d'une expression quelconque (limitée) donne les expressions équivalentes de toutes les variables de l'expression.
    Exemple: x=(a+b)*(c-d)/e ...
    c'est à dire à l'établissement de la fonction explicite (si elle existe !) de chacun des termes figurant dans une relation donnée.
    J'ai déjà précisé en quoi l'exemple cité était trop simple, et donnait traîtreusement à penser que l'algorithme de résolution était à portée de main (ou plutôt de clavier ...) .

    Citation Envoyé par bstjean Voir le message
    ... Un autre problème provient du fait que le domaine de chaque variable n'est pas défini. Est-ce qu'il s'agit d'équations diophantiennes ou tes variables et le résultat peuvent être des fractions? Les variables sont limitées à quels intervalles de valeur : [0 à 100] ou [-123456789, 123456789] ou plus?
    Compte tenu de la difficulté, je n'envisageais même pas la restriction de la recherche à un domaine donné, ou sur un ensemble donné (entiers ou rationnels) de variables.

    Citation Envoyé par bstjean Voir le message
    En fait, s'il s'agit d'équations diophantiennes (https://fr.wikipedia.org/wiki/%C3%89..._diophantienne), ça facilite quelque peu les choses comme les variables et le résultat doivent TOUS être des entiers!
    Hélas non ! L'article cité est malheureusement très clair sur ce point ...
    Comment ferais-tu pour trouver les solutions entières non triviales (y = 0 impliquant x = 0 ou x = ± 1) de l'équation: y2 = 5*x*(1 - x2) ?
    Tuyau: il y a (x = -9 ; y = ± 60) et rien d'autre jusqu'à -2000 d'après ma calculette.
    Tu remarqueras que le procédé n'a rien à voir avec la recherche d'une fonction réciproque, et qu'il pourrait à lui seul constituer le sujet d'un autre débat.

    Je crois me rappeler qu'il a été question de calcul formel sur un forum récent, remontant peut-être à quelques semaines (?).

    Petit sujet amusant, et beaucoup moins ambitieux: trouver par un procédé aléatoire des chaînes de 13 caractères résultant d'une permutation de la séquence '(a+b)*(c-d)/e' , et correspondant à une expression grammaticalement correcte de (x).

Discussions similaires

  1. Programmer encore en VB 6 c'est pas bien ? Pourquoi ?
    Par Nektanebos dans le forum Débats sur le développement - Le Best Of
    Réponses: 85
    Dernier message: 10/03/2009, 14h43
  2. [Kylix] [cgi] ne trouve pas libsqlmy.so.1 !
    Par Nepomiachty Olivier dans le forum EDI
    Réponses: 3
    Dernier message: 04/07/2002, 15h15
  3. Réponses: 1
    Dernier message: 23/06/2002, 00h15
  4. Pas de fork sous Windows?
    Par chezjm dans le forum POSIX
    Réponses: 8
    Dernier message: 11/06/2002, 12h15

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