Les sujets de maths pour la programmation
dabigben
Messages postés
1913
Date d'inscription
Statut
Membre
Dernière intervention
-
Idéophage Messages postés 43 Date d'inscription Statut Membre Dernière intervention -
Idéophage Messages postés 43 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aimerais savoir quels sont les sujets de mathématiques à bosser quand on a pas tellement suivit les cours à l'école, et qu'on veut se mettre à la programmation. Est-ce qu'il y a des sujets de maths importants à connaitre pour débuter ?
Merci !
J'aimerais savoir quels sont les sujets de mathématiques à bosser quand on a pas tellement suivit les cours à l'école, et qu'on veut se mettre à la programmation. Est-ce qu'il y a des sujets de maths importants à connaitre pour débuter ?
Merci !
A voir également:
- Les sujets de maths pour la programmation
- Sinequanone maths - Télécharger - Calcul & Conversion
- Formule maths - Télécharger - Études & Formations
- Application de programmation - Guide
- Tux maths - Télécharger - Bureautique
- Fransat vous n'avez pas les droits pour accéder au programme - Forum TNT / Satellite / Réception
7 réponses
Les "pré-requis" pour faire de la programmation pourraient être :
* Un peu d'algèbre, pour comprendre la numération binaire, les calculs modulaires et la logique booléenne.
* Quelques connaissances sur les puissances, les exponentielles, les logarithmes, afin d'aborder les chapitres sur la complexité d'un programme.
* De la trigonométrie si tu t'intéresses aux traitements du signal.
* Le raisonnement par récurrence est également important pour comprendre les concepts de récursivité.La confiance n'exclut pas le contrôle
* Un peu d'algèbre, pour comprendre la numération binaire, les calculs modulaires et la logique booléenne.
* Quelques connaissances sur les puissances, les exponentielles, les logarithmes, afin d'aborder les chapitres sur la complexité d'un programme.
* De la trigonométrie si tu t'intéresses aux traitements du signal.
* Le raisonnement par récurrence est également important pour comprendre les concepts de récursivité.La confiance n'exclut pas le contrôle
Il s'agit pas de sujet de math proprement dit. Mais des algorithmes qui sont assez célèbres.
Vous pouvez chercher du coté des tris, il en existe un tas:
-tri à bulle
-tri pas insertion
-tri du singe
-tri par dichotomie
Après toutes les opérations sur des listes ou tableau : Recherche, suppression, tri, ajout ...
Sinon des problèmes mathématiques faciles à mettre en place :
-Calcul de n factoriel en récursif
-Calcul d'une puissance avec l'algorithme d'expo rapide
bref plein de choses a faire
Vous pouvez chercher du coté des tris, il en existe un tas:
-tri à bulle
-tri pas insertion
-tri du singe
-tri par dichotomie
Après toutes les opérations sur des listes ou tableau : Recherche, suppression, tri, ajout ...
Sinon des problèmes mathématiques faciles à mettre en place :
-Calcul de n factoriel en récursif
-Calcul d'une puissance avec l'algorithme d'expo rapide
bref plein de choses a faire
Ok ! Tout ça me fait dire que j'ai beaucoup à apprendre parce que rien que pour "les problèmes mathématiques faciles à mettre en place" comme :
-Calcul de n factoriel en récursif
-Calcul d'une puissance avec l'algorithme d'expo rapide
et bien j'ai pas compris la consigne xD
Vous ne connaitriez pas un livre qui regrouperait un peu tout ça ?
-Calcul de n factoriel en récursif
-Calcul d'une puissance avec l'algorithme d'expo rapide
et bien j'ai pas compris la consigne xD
Vous ne connaitriez pas un livre qui regrouperait un peu tout ça ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai suivi les cours donnés lors de ma formation c'est à dire prépa math spé info et école d'ingénieurs.
Bonjour,
Quelles notions mathématiques maitriser pour programmer ?
L'algorithmique (on peut bien considérer ça comme des maths, n'est-ce pas ?). Pour ça, il y a un site internet francophone excellent : http://www.france-ioi.org/ ! Si tu veux un livre, en voilà : http://www.france-ioi.org/comm/aide.php#question_13 Je conseille cependant vivement de ne pas acheter de livre car il est je pense préférable de trouver les choses soi-même (ce que permet la plateforme d'entrainement de France-IOI).
D'après mon expérience, les cours à l'école sont trop souvent plus faits pour être appris que compris. Donc je ne pense pas que ce soit énormément important de ne pas avoir suivi à fond. Il suffit de quelques notions de base dans les sujets qu'a cités KX, d'un peu de papier/crayon et de beaucoup de passion.
En ce qui concerne les exercices donnés par scinarf, il s'agit de résoudre les problèmes suivants :
1) Calcul de n factorielle : la factorielle de n (notée « n! ») est le nombre de façons de ranger n pierres numérotées de 1 à n. Par exemple, si l'on a trois pierres, notées 1, 2 et 3, on peut les ranger de 6 manières différentes : (123), (132), (213), (231), (312) et (321). Il s'agit de construire un algorithme qui, étant donné le nombre de pierres, détermine le nombre de façons qu'il y a de les ranger (pour plus de détails, tu peux chercher « combinatoire énumérative », mais après avoir trouvé !).
2) Exponentiation rapide : imaginons que l'on veuille calculer le produit 2 * 2 * 2 * 2 * 2 ( = 2^5 qui se lit 2 puissance 5). De par l'associativité de la multiplication (le fait que (2*3)*4 = 2*(3*4)), on peut choisir l'ordre dans lequel on effectue les calculs. Par exemple, on peut faire (((2*2)*2)*2)*2 = ((4*2)*2)*2 = (8*2)*2 = 16*2 = 32. Mais on peut aussi faire (2*2)*((2*2)*2) = 4 * ((2*2)*2) = 4 * (4*2) = 4*8 = 32. On remarque ici que l'on a effectué deux fois le produit 2*2, et que donc on peut se contenter de ne le calculer qu'une seule fois et de réutiliser le résultat. Or, ce qui nous intéresse en algorithmique est de calculer le plus rapidement possible ! Il s'agit donc de trouver un algorithme qui calcule a^b en effectuant un nombre minimal de multiplications. Lorsque tu aura trouvé la solution (après peut-être longtemps, si tu n'y arrive pas, laisse le problème de côté et reviens-y plus tard, mais ne regarde pas la solution !), essaie de voir en quoi il s'agit de la même chose que l'algorithme que l'on utilise pour multiplier deux nombres en procédant chiffre par chiffre (ça aussi, ça peut être difficile, il faut laisser faire le temps et le travail modéré pour ensuite s'émerveiller !). En fait, ça devient trivial avec un brin d'algèbre (notion de semi-groupe). Si tu ne vois pas à quel algorithme je fais référence pour la multiplication chiffre par chiffre, c'est ici : https://fr.wikipedia.org/wiki/Fichier:Poser-une-multiplication.ogv
[edit]
Pour répondre à la question initialement posée, ce qui est important d'avoir, c'est je pense moins les concepts mathématiques (même si certains sont très présents en algorithmique) que la manière de raisonner que je serais incapable de décrire maintenant (capacité d'abstraction, de problem-solving, de hacking). D'ailleurs, le site dont j'ai parlé plus haut, France-IOI, propose une méthode de résolution de problèmes très proche de celle proposée par G. Pólya dans son livre How to solve it?. L'algorithmique est un domaine des maths, avec des liens forts et imprévisibles ! Et les maths sont une fractale (c'est beau, l'autoréférence).
Quelles notions mathématiques maitriser pour programmer ?
L'algorithmique (on peut bien considérer ça comme des maths, n'est-ce pas ?). Pour ça, il y a un site internet francophone excellent : http://www.france-ioi.org/ ! Si tu veux un livre, en voilà : http://www.france-ioi.org/comm/aide.php#question_13 Je conseille cependant vivement de ne pas acheter de livre car il est je pense préférable de trouver les choses soi-même (ce que permet la plateforme d'entrainement de France-IOI).
D'après mon expérience, les cours à l'école sont trop souvent plus faits pour être appris que compris. Donc je ne pense pas que ce soit énormément important de ne pas avoir suivi à fond. Il suffit de quelques notions de base dans les sujets qu'a cités KX, d'un peu de papier/crayon et de beaucoup de passion.
En ce qui concerne les exercices donnés par scinarf, il s'agit de résoudre les problèmes suivants :
1) Calcul de n factorielle : la factorielle de n (notée « n! ») est le nombre de façons de ranger n pierres numérotées de 1 à n. Par exemple, si l'on a trois pierres, notées 1, 2 et 3, on peut les ranger de 6 manières différentes : (123), (132), (213), (231), (312) et (321). Il s'agit de construire un algorithme qui, étant donné le nombre de pierres, détermine le nombre de façons qu'il y a de les ranger (pour plus de détails, tu peux chercher « combinatoire énumérative », mais après avoir trouvé !).
2) Exponentiation rapide : imaginons que l'on veuille calculer le produit 2 * 2 * 2 * 2 * 2 ( = 2^5 qui se lit 2 puissance 5). De par l'associativité de la multiplication (le fait que (2*3)*4 = 2*(3*4)), on peut choisir l'ordre dans lequel on effectue les calculs. Par exemple, on peut faire (((2*2)*2)*2)*2 = ((4*2)*2)*2 = (8*2)*2 = 16*2 = 32. Mais on peut aussi faire (2*2)*((2*2)*2) = 4 * ((2*2)*2) = 4 * (4*2) = 4*8 = 32. On remarque ici que l'on a effectué deux fois le produit 2*2, et que donc on peut se contenter de ne le calculer qu'une seule fois et de réutiliser le résultat. Or, ce qui nous intéresse en algorithmique est de calculer le plus rapidement possible ! Il s'agit donc de trouver un algorithme qui calcule a^b en effectuant un nombre minimal de multiplications. Lorsque tu aura trouvé la solution (après peut-être longtemps, si tu n'y arrive pas, laisse le problème de côté et reviens-y plus tard, mais ne regarde pas la solution !), essaie de voir en quoi il s'agit de la même chose que l'algorithme que l'on utilise pour multiplier deux nombres en procédant chiffre par chiffre (ça aussi, ça peut être difficile, il faut laisser faire le temps et le travail modéré pour ensuite s'émerveiller !). En fait, ça devient trivial avec un brin d'algèbre (notion de semi-groupe). Si tu ne vois pas à quel algorithme je fais référence pour la multiplication chiffre par chiffre, c'est ici : https://fr.wikipedia.org/wiki/Fichier:Poser-une-multiplication.ogv
[edit]
Pour répondre à la question initialement posée, ce qui est important d'avoir, c'est je pense moins les concepts mathématiques (même si certains sont très présents en algorithmique) que la manière de raisonner que je serais incapable de décrire maintenant (capacité d'abstraction, de problem-solving, de hacking). D'ailleurs, le site dont j'ai parlé plus haut, France-IOI, propose une méthode de résolution de problèmes très proche de celle proposée par G. Pólya dans son livre How to solve it?. L'algorithmique est un domaine des maths, avec des liens forts et imprévisibles ! Et les maths sont une fractale (c'est beau, l'autoréférence).