Combinatoire à vot bon coeur

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
Avatar de l’utilisateur
Ben314
Le Ben
Messages: 21709
Enregistré le: 11 Nov 2009, 21:53

Re: Combinatoire à vot bon coeur

par Ben314 » 02 Nov 2016, 22:47

@Fatal : je remonte le thread "le compte est bon".

@Valentin03 : Pour moi, 'x', c'est la 24em lettre de l'alphabet occidental. Rien de plus... ni de moins.
Valentin03 a écrit:Comment peux-tu affirmer cela alors que tu avoue ne pas avoir compris la question ?
La question je l'ai compris après ton post . du 01 Nov 2016 15:07.
Sauf que j'ai pas franchement vu le rapport avec le charabia des deux premier post et que ça m'a fortement étonné qu'il puisse y avoir ne serait-ce qu'un collégien qui puisse penser une seule seconde qu'on peut "inverser" mécaniquement (i.e. à l'aide d'un programme) des formules contenant les signes +,-,*,/ avec des formules du même type.
Il me semble que, dés la quatrième, on voit que partant de la simple expression a=b*b, si on cherche la valeur de b, alors si a<0 et il n'y a aucune solution (donc aucun b=... valide), et si a>0 et il y a deux solutions et (donc pas de b=... unique) et qu'en plus, ces solutions ne s'expriment pas avec les seuls symboles + , - , * , / .
Sans parler de cas qu'on peut considérer comme encore plus simples et qu'on voie aussi au collège du style a=(b-3)*(b-1) où, lorsque a=0, il y a deux solutions b=3 et b=1 ce qui prouve qu'il n'existe pas de fonction f telle que l'équation a=(b-3)*(b-1) soit équivalente à b=f(a).
On voit en seconde qu'il en est de même pour tout a>=??? et je pense qu'on peut même le voir (graphiquement) au niveau Collège : si on trace la courbe de b->(b-3)(b-1) tout les réels a (sauf un) auront zéro ou deux antécédents.

P.S. Rêver, c'est bien, mais d'utiliser aussi ça cervelle pour avoir deux sous de bon sens, c'est pas mal non plus.
Qui n'entend qu'un son n'entend qu'une sonnerie. Signé : Sonfucius



Valentin03
Membre Relatif
Messages: 429
Enregistré le: 23 Déc 2012, 13:08

Re: Combinatoire à vot bon coeur

par Valentin03 » 02 Nov 2016, 23:43

Je vois que tu es un spécialiste des cas particuliers
(Et de la diversion, car tu fais entrer en jeu les racines carrées dont je n'ai jamais parlé)
Quand à: "a=(b-3)*(b-1) " si a=0, on se fout du reste
On ne fait pas un relevé de fonctionnement sur une machine à l'arrêt

Avatar de l’utilisateur
Ben314
Le Ben
Messages: 21709
Enregistré le: 11 Nov 2009, 21:53

Re: Combinatoire à vot bon coeur

par Ben314 » 03 Nov 2016, 01:08

1) Je ne parle de racine carrée que du fait qu'il n'y a pas d'autre façon d'exprimer b en fonction de a partant de la formule (sans racines carrées) a=b*b et c'est justement parce que toi tu ne parle pas de racine carrés que même un collégien est sensé voir que le truc que tu demande est clairement infaisable.
2) Et concernant "les cas particulier", comme tu dit, tu devrait de nouveau essayer d'utiliser ta cervelle pour réfléchir plutôt que de rêver : si on ne peut même pas faire ce que tu désire faire (écrire b=... partant de a=...) dans un certain cas particulier, ça prouve bien évidement qu'on ne risque pas de le faire dans le cas général !!!!
Et si tu veut une analogie avec une machine sensée traiter des tonnes de cas (temporellement), si à un instant donné le résultat que donne la machine n'est pas le bon, ça me suffit effectivement pour en déduire qu'elle ne marche pas.
Sans parler du fait que je t'ai déjà signalé que a=0 n'est pas du tout un cas particulier, mais plutôt le cas général vu que le seul et unique cas où on peut déduire du b=... de a=(b-3)*(b-1), c'est celui où a=-1 qui donne b=2. Dans tout les autres cas on ne peut pas.

Enfin, bref, commence par apprendra au minimum comment on résous des équations du premier et du second degré et tu comprendra que ton truc est irréalisable.
(et éventuellement, va voir un livre de seconde pour y (re)trouver la définition de ce qu'est une fonction...)

P.S. Il me semble tout de même que, avant de poster un truc dans le forum "supérieur", ça serait pas con d'avoir au minimum acquis les base vu au collège, non ?
Qui n'entend qu'un son n'entend qu'une sonnerie. Signé : Sonfucius

Valentin03
Membre Relatif
Messages: 429
Enregistré le: 23 Déc 2012, 13:08

Re: Combinatoire à vot bon coeur

par Valentin03 » 03 Nov 2016, 08:33

Si j'ai compris fatal_error, l"expression équivalente d'une expression valide est toujours une expression valide
C'est tout ce dont j'ai besoin
Les zéros ne peuvent être que:
- Des résultats (d'expression valide)
- Un ou des paramètres manquants (gérés par une jolie notice: "Erreur fatale par manque de paramètre(s)")
Qu'il y ait plusieurs "solutions" n'est pas gênant, ce sont des expression équivalentes donnant le même résultat (et donc exploitables)
Le programme ne manipule conceptuellement que des expressions (lettres+symboles), les valeurs traitées en parallèle ne servent que pour l'évaluation en vue du test de validité
J'apprécie tes critiques, elles me font avancer par mes réponses.
Je pense que tu ne vois pas ce dont il est question
En gros: On saisie une expression (lettres + symboles), on remplace les lettres par des chiffres, on évalue (base de comparaison), on traite en combinatoire et en parallèle la chaine: "lettres + symboles" et la chaine "chiffres+symboles" , on évalue et on compare
Je ne vois rien d'infaisable dans cette procédure.
Je n'ai besoin que d'une équivalence pour chaque lettre différente de l'expression de départ

Si j'ai posté dans "Supérieur", c'est parce que j'ai pris soin de taper "Combinatoire" dans la fenêtre de recherche et que ça m'a envoyé dans "Supérieur"
Je présente mes excuses aux supérioritiens puisqu'il s'agit plus d'algorithmique que de mathématique

Avatar de l’utilisateur
Ben314
Le Ben
Messages: 21709
Enregistré le: 11 Nov 2009, 21:53

Re: Combinatoire à vot bon coeur

par Ben314 » 03 Nov 2016, 10:24

Bon, ben je suis désolé de te le dire, mais clairement, tu n'as rien compris non plus de ce que racontait fatal_error qui, quand à lui n'avait rien compris à tes posts de départ...
Le truc dont il te parle, c'est le problème du "compte est bon" (un jeu télévisé : je sais pas s'il existe encore).
On a un certain nombre de "plaques" avec des nombres dessus et il faut, à l'aide de ces nombres et des 4 opérations élémentaires obtenir un résultat le plus proche possible d'un autre nombre fixé d'avance.
Tu peut regarder là : http://www.ina.fr/video/I11160993 (archive INA de 1974)
(et si tu tape "le compte est bon" dans un moteur de recherche, tu trouvera des tonnes de "solveurs" utilisant des algorithmes plus ou moins astucieux : avec les machines actuelles, ça se fait y compris en "brute force")

Pense tu que ça a quelque chose à voir avec ton problème ?
Qui n'entend qu'un son n'entend qu'une sonnerie. Signé : Sonfucius

Valentin03
Membre Relatif
Messages: 429
Enregistré le: 23 Déc 2012, 13:08

Re: Combinatoire à vot bon coeur

par Valentin03 » 03 Nov 2016, 13:57

Ben314 a écrit:Pense tu que ça a quelque chose à voir avec ton problème ?

Et bé oui, la combinatoire!
Qui dans mon cas va être plus complexe à cause des symboles, qui à l'instar du fromage et du jambon dans le hamburger, devront être intercalés, pour éviter les formes: "++ab*-/+cd"
Le principal, c'est que j'ai débarqué ici dans le brouillard et que j'en repars avec les idées claires
Avec en prime un joker en or nommé: "brute force"; un régal.
Je pense que tu a regardé le problème de trop près et je veux bien admettre que je m'exprime mal; en le voyant de plus haut fatal_error a capté direct et a conseillé la hache d'abordage, chemin le plus court entre un problème est sa solution

Avatar de l’utilisateur
Ben314
Le Ben
Messages: 21709
Enregistré le: 11 Nov 2009, 21:53

Re: Combinatoire à vot bon coeur

par Ben314 » 03 Nov 2016, 23:21

Et ben, je te cache pas que ça m'intéresse au plus haut point de voir ce que tu va bien pouvoir coder avec ta hache d'abordage....
Donc pense surtout bien à nous tenir au courant des tout les fulgurants progrès que tu va faire.
Qui n'entend qu'un son n'entend qu'une sonnerie. Signé : Sonfucius

Valentin03
Membre Relatif
Messages: 429
Enregistré le: 23 Déc 2012, 13:08

Re: Combinatoire à vot bon coeur

par Valentin03 » 04 Nov 2016, 16:20

Je ne m'en suis pas sorti avec l'algo de "rotation" de fatal_error, et avec les deux codes en "C" encore moins
Mais j'ai quand même réussi à faire la rotation pour avoir les combinaisons avec une méthode non orthodoxe, je m'y repencherai quand j'aurai plus avancé. je sais qu'il n'est pas bon de partir sur une base pourrie, mais comme de toutes façons je code comme un goret, ça finira en usine à gaz, com' d'hab
Je n'ose pas demander à fatal_error de me faire l'algo en pseudo code; il n'y a que dix lignes, mais purée, c'est velu de chez velu, c'est pas du C, c'est de l'extraterrestre.

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

Re: Combinatoire à vot bon coeur

par fatal_error » 04 Nov 2016, 19:47

en fait, je ne sais pas de quels algos tu parles (celui de "rotation", les codes en "C", celui où il n'y a "que dix lignes")

le plus simple serait que tu cites les postes (ou leur date s'il n'y a pas d'ambiguités?)

pour le gpgpu, j'ai réussi à péter ma distrib avec les packets propriétaires, alors j'install un archlinux... un passionant we en perspective..
la vie est une fête :)

Valentin03
Membre Relatif
Messages: 429
Enregistré le: 23 Déc 2012, 13:08

Re: Combinatoire à vot bon coeur

par Valentin03 » 05 Nov 2016, 10:52

Je parle ces dix lignes là, j'ai compris les deux premières, je ne suis donc pas totalement nul. (un peu d'auto congratulation ne peut pas faire de mal et j'en ai besoin suite aux coups de fourche de Ben)
Code: Tout sélectionner
   for(var i = 0; i<hand.length; ++i){
        for(var j = i+1; j<hand.length; ++j){
            var t = hand.slice(0);
            var a = t.splice(i,1)[0];
            var b = t.splice(j-1,1)[0];
            operators.forEach(op=>{
                var v = evaluate[op](a.v,b.v);
                if(v!=null){
                    t[handSize-2] = new Tree(a,b,op,v);
                    go(t, handSize-1, goal);

Tant que tu ne fais pas péter ta machine, y a pas de blâme,
Bonne install !

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

Re: Combinatoire à vot bon coeur

par fatal_error » 05 Nov 2016, 17:44

Code: Tout sélectionner
for(var i = 0; i<hand.length; ++i){                 //ici, il y a une coquille, il faut prendre handSize au lieu de hand.length
    for(var j = i+1; j<hand.length; ++j){           //idem
        var t = hand.slice(0);                      //on copie notre tableau dans la variable t (pour modifier t sans impacter hand)
        var a = t.splice(i,1)[0];                   //on enlève le ième élement de t qu'on store dans a
        var b = t.splice(j-1,1)[0];                 //on enlève le jième élément de t qu'on store dans b
        operators.forEach(op=>{                     //pour chaque operateur (-,*,/,+)
            var v = evaluate[op](a.v,b.v);          //on calcul a op b
            if(v!=null){                            //si on a réussi le calcul (idem on a pas divisé par 0)
                t[handSize-2] = new Tree(a,b,op,v); //on store dans à la fin de t le résultat (handSize-2 car on a enlevé deux éléments à t)
                go(t, handSize-1, goal);            //on se rappèle avec handSize-1 car on a enlevé deux éléments, mais on en a rajouté 1
la vie est une fête :)

Valentin03
Membre Relatif
Messages: 429
Enregistré le: 23 Déc 2012, 13:08

Re: Combinatoire à vot bon coeur

par Valentin03 » 05 Nov 2016, 19:34

J'ai pris, je transcris je croise les doigts et je teste

Valentin03
Membre Relatif
Messages: 429
Enregistré le: 23 Déc 2012, 13:08

Re: Combinatoire à vot bon coeur

par Valentin03 » 05 Nov 2016, 21:41

Oh présomptueux que je suis; Ton langage est trop "chinois" pour moi, je vais y pomper ce que je peux avec un dico de chinois.
Il doit y avoir une incrémentation entre chaque calcul de v et comme elle se fait après moultes fonctions je me perds grave en chemin. (splendeur et misères de l'imbrication)
Mais merci quand même pour le grain à moudre.
Je vais faire par comparaison à 0
Si x=a+b-c+d; ou: x=3+7-4+2=8
3+7-4+2-8=0
Si résultat - 3 =0 je sais que je tiens: a=. . . . .
Si résultat + 4 =0 je sais que je tiens: c=. . . . .
Y a plus qu'à....
Ben, tu n'es pas assez magnanime avec le pauvre errant.

Valentin03
Membre Relatif
Messages: 429
Enregistré le: 23 Déc 2012, 13:08

Re: Combinatoire à vot bon coeur

par Valentin03 » 06 Nov 2016, 22:19

Pour ben qui veut des nouvelles
Bon pour commencer je ne fait qu'avec des: "+" et des: "-" (on fait ce qu'on peut on est pas des boeufs)
- Après avoir fait la rotation par permutation de doublets des paramètres (sans symboles) et mis ça en tableau: num(n)
- J'envoie la combinaison là dedans :
Code: Tout sélectionner
    s=s+ 1 '// index du tableau express$(s) qui contiendra les chaines: "Paramètres plus symboles" (pour plus tard)
      '// on fait le calcul pour la config: "+ - + -"
      res=0: res=res+num(1)+num(2)-num(3)+num(4)-num(5)
      '//on affiche l'expression et son résultat
      print express$(s);"   ";res
     s=s+ 1 '//on incrémente et on recommence avec une autre configuration des symboles: "- + - +"

Comme il y a beaucoup de configurations, un bon petit algo serait le bien venu; parce en continuant comme ça, y va y avoir beaucoup beaucoup de lignes

Note: On peut mettre les symboles dans un tableau de chaines: symb$(n)="+" et les appeler avec "n".
Ce qui donnera un truc du genre:
Code: Tout sélectionner
res=res+num(1) symb$(x?)num(2)symb$(x?)num(3)symb$(x?)num(4)symb$(x?)num(5)

Je me débrouillerai pour extraire le "sens" de symb$(x?) et le rendre efficient en tant qu'opérateur.

A vot'bon coeur, compassion pour le pauvre errant

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 93 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite