Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

Comment je pense les math ?

Posté par
Maclemort
26-09-13 à 18:19

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 ?

Posté par
esta-fette
re : Comment je pense les math ? 26-09-13 à 18:25

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 \sqrt 2 + \sqrt 3 et \pi, je ne sais pas comment je vais faire...


par contre si JE sais faire ça, alors je pourrai expliquer à la machine comment faire....

Posté par
Maclemort
re : Comment je pense les math ? 26-09-13 à 18:29

Merci, je vais essayer et voir si ca fonctionne.

Posté par
Maclemort
re : Comment je pense les math ? 26-09-13 à 18:51

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 ?

Posté par
esta-fette
re : Comment je pense les math ? 26-09-13 à 19:07

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....

Posté par
Maclemort
re : Comment je pense les math ? 26-09-13 à 19:31

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 ?

Posté par
Bachstelze
re : Comment je pense les math ? 26-09-13 à 19:32

Citation :
la machine ne sait pas naturellement comparer deux nombres ex: 5 et 8


Qu'entends-tu par "naturellement" ? La machine sait très bien faire ça...

Posté par
esta-fette
re : Comment je pense les math ? 26-09-13 à 19:35

La machine ne sait pas naturellement comparer

A=121212136454454545555555555555555555555555555555555555444444444444444444444444455555555555555555555555555555
44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444555555555555555555555
55555555555555555555555555555555555555555555555566666666666666666666666666666666666666666666666666666666

et


B=121212136454454545555555555555555555555555555555555555444444444444444444444444455555555555555555555555555555
44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444555555555555555555555
55555555555555555555555555555555555555555555555566666666666666666666666666666666666666666666666666666667

édit Océane

Posté par
Bachstelze
re : Comment je pense les math ? 26-09-13 à 19:38

La machine ne sait même pas manipuler naturellement ces nombres, donc lui demander de les comparer n'a aucun sens.

Posté par
esta-fette
re : Comment je pense les math ? 26-09-13 à 19:38

Citation :
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 ?


On raisonne avec les yeux.....
La machine fait un très grand nombre d'opérations très simples....

Quand le nombre est trop grand, on est perdu car on n'arrive plus à visualiser...

Posté par
esta-fette
re : Comment je pense les math ? 26-09-13 à 19:41

Citation :
Posté par Profil Bachstelze

La machine ne sait même pas manipuler naturellement ces nombres, donc lui demander de les comparer n'a aucun sens.


Ce que fait une machine n'a aucun sens....
C'est l'humain qui programme ou l'humain qui utilise le programme qui donne un sens à ce que la machine sort....

Posté par
Bachstelze
re : Comment je pense les math ? 26-09-13 à 19:42

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 :

Citation :
En fait je me rend compte que j'ai du mal a reproduire en code ce que je pense naturellement.


Première question : qu'est-il entendu par "code" ? Je suis désolé, mais dans 99% des langages, la comparaison se fait très naturellement :

if (a < b) {
   bla bla;
} else {
   bla bla bla;
}

Posté par
Bachstelze
re : Comment je pense les math ? 26-09-13 à 19:45

Citation :
Ce que fait une machine n'a aucun sens....
C'est l'humain qui programme ou l'humain qui utilise le programme qui donne un sens à ce que la machine sort....


Posté par
esta-fette
re : Comment je pense les math ? 26-09-13 à 19:51


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 ?

Posté par
Maclemort
re : Comment je pense les math ? 26-09-13 à 19:53

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).

Posté par
Bachstelze
re : Comment je pense les math ? 26-09-13 à 19:53

Citation :
Avez vous déjà programmé en binaire ou en assembleur ?


Je te retourne la question ! Il existe une instruction de comparaison dans le jeu d'instructions, et donc dans le langage assembleur, de l'immense majorité des processeurs.

Posté par
Bachstelze
re : Comment je pense les math ? 26-09-13 à 19:54

Citation :
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).


Il n'y a pas de recette miracle, cela vient avec l'expérience.

Posté par
carpediem
re : Comment je pense les math ? 26-09-13 à 20:04

alors il suffit de connaitre le français ....

Posté par
carpediem
re : Comment je pense les math ? 26-09-13 à 20:05

parce que si on ne sait pas exprimer ce que l'on pense, on le traduira encore moins dans une autre langue/langage ...

Posté par
esta-fette
re : Comment je pense les math ? 26-09-13 à 20:06

Citation :
Posté par Profil Maclemort

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).


J'ai fabriqué un solveur de Sudoku qui aide le joueur dans certains cas....en Visual Basic, et puis en Java

En fait, il faut comprendre des choses très simples pour faire ce genre de truc...

J'ai fabriqué un OBJET, avec des propriétés, et des méthodes....
Au départ, l'objet de base est la case du Sudoku...

J'ai mis une propriété : case remplie ou non remplie...
J'ai mis une autre propriété: le tableau des valeurs candidates....
J'ai aussi mis d'autres propriétés: colonne, ligne, zone....

J'ai fabriqué un autre objet: une liste de 9 cases (ligne ou colonne ou région)
avec des propriétés et des méthodes....
etc... etc....


évidemment ce n'est pas comme ça qu'un être humain résout un Sudoku

Posté par
esta-fette
re : Comment je pense les math ? 26-09-13 à 20:12

Citation :
Posté par Profil Bachstelze

Citation :
Avez vous déjà programmé en binaire ou en assembleur ?


Je te retourne la question ! Il existe une instruction de comparaison dans le jeu d'instructions, et donc dans le langage assembleur, de l'immense majorité des processeurs.


à une époque j'ai fait des petits programmes en assembleur Z80 et le processeur du commodore 6510...

Les nombres entiers étaient codés sur un octet, ou parfois 2 octets....
Pour les comparer, c'était plutôt compliqué.....

J'ai aussi travaillé avec des nombres en hexadécimal en Basic ou dans d'autres langages, là aussi, il faut faire autrement....

Posté par
Bachstelze
re : Comment je pense les math ? 26-09-13 à 20:13

Citation :
à une époque


Ouais mais on est plus "à une époque", désolé.

Posté par
esta-fette
re : Comment je pense les math ? 26-09-13 à 20:20



Citation :

Citation :
à une époque


Ouais mais on est plus "à une époque", désolé.


Vous avez parfaitement raison.....

Mais quand un programme codé de 256 octets arrive à faire des choses incroyables....
Par exemple charger un programme 8 fois plus vite, et multiplier par 2 la taille des disquettes utilisables....

quand on codait une une vingtaine d'octets pour faire fonctionner un programme sur une machine alors que cette machine n'était pas prévue pour ça....

maintenant, le moindre "petit" programme fait plusieurs méga-octets....

Il faut des monstres de programmation pour faire une toute petite chose....

Posté par
ArgShX
re : Comment je pense les math ? 27-09-13 à 10:26

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.

Posté par
carpediem
re : Comment je pense les math ? 27-09-13 à 10:48

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 ....

Posté par
esta-fette
re : Comment je pense les math ? 27-09-13 à 11:34

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....

Posté par
carpediem
re : Comment je pense les math ? 27-09-13 à 18:21

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 ....

Posté par
GaBuZoMeu
re : Comment je pense les math ? 28-09-13 à 16:27

Comment je pense les math ?

C'est ma machine qui a tout fait.

Posté par
carpediem
re : Comment je pense les math ? 28-09-13 à 16:41

oui et on peut aller jusqu'à combien de chiffres ?

Posté par
GaBuZoMeu
re : Comment je pense les math ? 28-09-13 à 16:52

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.

Posté par
carpediem
re : Comment je pense les math ? 28-09-13 à 16:56

oui c'est ce que je pensais ...

c'est simplement un problème de capacité mémoire et une petite procédure ...

Posté par
Bachstelze
re : Comment je pense les math ? 28-09-13 à 17:23

Citation :
Je ne sais pas ce qui est naturel ou pas pour une machine.


Ce qui est naturel, c'est ce que le processeur sait faire, c'est-à-dire manipuler des entiers de 32 ou 64 bits en général. Pour manipuler des entiers plus grands, il faut découper les entiers en morceaux, les envoyer au processeur, et reconstituer le résultat. Évidemment, il y a des programmes faits pour ça...

L'essentiel est que la machine sait comparer des nombres, dès lors qu'elle sait les manipuler. Cette histoire de comparaison n'était sans doute qu'un exemple, assez mal choisi. Le vrai problème a été exprimé le 26-09-13 à 19:53.

Posté par
GaBuZoMeu
re : Comment je pense les math ? 28-09-13 à 17:36

L'histoire du Sudoku ?

Posté par
Bachstelze
re : Comment je pense les math ? 28-09-13 à 17:38

Plus généralement :

Citation :
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).


... à quoi j'ai répondu juste après.

Posté par
esta-fette
re : Comment je pense les math ? 28-09-13 à 18:45

On a parlé de choses différentes....

le message initial:

Citation :
Posté par Profil Maclemort

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  \red au. processeur ?


Un langage de haut niveau, c'est pas le langage du processeur...



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !