Bonjour,
Je fais de la programmation et j'ai beaucoup de mal avec les algorithmes du genre trier un tableau d'entier par ordre croissant/decroissant, pour cette exemple ca va mais quand ca devient plus compliqué je rame a mort.
En fait je me rend compte que j'ai du mal a reproduire en code ce que je pense naturellement. C'est stupide mais par exemple la machine ne sait pas naturellement comparer deux nombres ex: 5 et 8 alors que moi je le sais d'instinct. Ce qui me gene c'est que j'ai juste le resultat mais je vois pas toutes les étapes qui se déroulent dans ma tête avant de savoir que 5<8. Ma question est : comment est ce que mon cerveau traite ce type de calcul et comment est ce que je pourrais percevoir ce qu'il se passe du début a la fin pour que je puisse ensuite faire "comprendre" ce que je pense au processeur ?
Bonjour......
Pour se faire comprendre, il faut d'abord comprendre....
JE vois 5 et 8 et JE compare....
En fait JE ne sais pas comment J'ai fait pour comparer....
Ce qui fait que si je dois comparer et , je ne sais pas comment je vais faire...
par contre si JE sais faire ça, alors je pourrai expliquer à la machine comment faire....
ca revient a comparer 3.14159265359 et 3.14626436994 en remplaçant les expressions par leur valeur mais une fois que j'ai 3.14159265359 et 3.14626436994 comment je peux savoir que 3.14159265359 < 3.14626436994 ouai en comparant le premier chiffre différent apres la virgule donc 1 et 6 mais j'en reviens toujours au même problème >< comment je sais que 1 < 6 ? Est ce que mon cerveau a été formaté par l'éducation pour savoir que 0<1<2<3<4<5<6<7<8<9 comme si il y avait une sorte de table ascii dans une zone du cerveau ou les signes 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 sont classé arbitrairement ?
Et si on calculait a-b ,
On aurait un nombre....
si ce nombre est positif, alors a est plus grand que b
Si ce nombre est négatif alors c'est b qui est plus grand que a...
On demande à la machine de faire le calcul, de regarder si a-b = valeur absolue de (a-b) de nous dire si c'est vrai, et on sait quel est le plus grand des 2 nombres.
Par contre notre cerveau a un don pour classer par ordre alphabétique...
Alors que pour programmer, il faut penser que la machine n'est pas très intelligente, et il faut lui expliquer....
C'est parce que l'être humain est trop intelligent qu'il a des problèmes pour programmer....
Ok il sait classé par ordre alphabétique mais il peut pas me renvoyer immédiatement le résultat d'une grande opération comme 4894134561*4561654 alors que la machine le fais presque instantanément. Est ce que j'ai un problème de vitesse, donc que mon cerveau est incapable de faire une telle operation ou est ce que l'operation se fait quelque part, inconsciemment et je n'arrive pas a retrouver le resultat. En gros qu'est ce qu'il se passe quand je demande a mon cerveau de calculer ce type d'operation, quels sont les mécanismes en oeuvre ?
La machine ne sait pas naturellement comparer
A=121212136454454545555555555555555555555555555555555555444444444444444444444444455555555555555555555555555555
44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444555555555555555555555
55555555555555555555555555555555555555555555555566666666666666666666666666666666666666666666666666666666
et
B=121212136454454545555555555555555555555555555555555555444444444444444444444444455555555555555555555555555555
44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444555555555555555555555
55555555555555555555555555555555555555555555555566666666666666666666666666666666666666666666666666666667
édit Océane
La machine ne sait même pas manipuler naturellement ces nombres, donc lui demander de les comparer n'a aucun sens.
D'abord on parle de comparer, puis ensuite de multiplier, ce qui n'est pas du tout la même chose... Si j'ai bien compris, le problème est celui-ci :
Avez vous déjà programmé en binaire ou en assembleur ?
ou dans des langages où il n'existe pas de comparateurs de nombres , par exemple des langages où on travaille avec des piles ?
pour un petit exemple un if et ca passe mais pour algorithme un peu plus compliqué par exemple un algorithme qui résout un sudoku ça devient plus compliqué alors que moi j'arrive a résoudre un sudoku. Ce que je cherche c'est la maniere la plus efficace de transposer ce que je pense en tel langage informatique(disons un langage de haut niveau c, c++ etc).
parce que si on ne sait pas exprimer ce que l'on pense, on le traduira encore moins dans une autre langue/langage ...
Bonjour,
Pour ce qui est de transposer directement ta pensée en code, si tu n'y arrive pas c'est simplement que ce n'est pas réellement possible. Un ordinateur, dans l'état actuel des choses, ne fonctionne pas comme le cerveau humain, il est beaucoup plus performant pour certaines choses et beaucoup moins sur d'autres.
En particulier pour un solveur de Sudoku la bonne méthode est d'explorer tout l'arbre des solutions en revenant en arrière quand ça bloque. La solution est trouvée en quelques secondes. Cette méthode est relativement simple à implémenter, efficace, mais ne traduit absolument pas la manière dont un humain résout un Sudoku.
dans une certaine mesure si :: on explore un arbre et lorsqu'on prend une branche qui mène en impasse on revient au nœud précédent ...
la différence avec une machine c'est notre vision globale qui permet d'éliminer immédiatement certaines possibilités conduisant à une impasse ce qui permet d'éliminer très vite des branches
par contre une machine traitera de façon mécanique et systématique toutes les branches ...
après on peut créer des systèmes de plus en plus experts qui peuvent "apprendre" et affiner leur recherche/ traitement du pb ....
Bonjour Carpediem....
Les systèmes non d'experts que le nom....
c'est le programmeur qui donne du sens à la recherche et aux résultats trouvés par la machine....
Les qualités d'une machine sont la vitesse et la méticulosité du travail....
Un humain va balayer la situation de manière "intuitive" il peut arriver qu'il oublie un noeud, ou qu'il ne sache plus où il est arrivé....
Je pense aussi qu'un humain va regarder la situation la plus "probable", celle qui risque d'amener un résultat rapide.....
Une autre chose aussi distingue l'homme de la machine:
un humain va très vite savoir qu'il est dans une impasse et qu'il y a un trop grand nombre d'opérations à faire, ou qu'on tourne en rond...
L'ordinateur, lui, se plante....
oui et non ...
certes on peut "programmer un raisonnement" mais au début, à l'apparition des premiers langages orientés objets je me rappelle d'un chercheur grec qui utilisait prolog et avait programmer sa machine (aux dames il me semble) pour que la machine "apprenne" .... c'est de ce type d'expertise que je parlais ....
pour le reste je suis bien d'accord avec toi ...
pour le nombre d'opérations ce n'est qu'une limite physique ... guère gênante théoriquement enfin dans la réflexion actuelle ... ensuite bien sur que les limites physiques nous obligent à nous adapter à notre environnement ....
Beaucoup.
Mon intervention, c'était juste en réaction à : "La machine ne sait même pas manipuler naturellement ces nombres, donc lui demander de les comparer n'a aucun sens."
Je ne sais pas ce qui est naturel ou pas pour une machine. Mais il semble bien qu'elle se débrouille avec des entiers longs, avec un programme fait pour ça.
oui c'est ce que je pensais ...
c'est simplement un problème de capacité mémoire et une petite procédure ...
Plus généralement :
On a parlé de choses différentes....
le message initial:
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :