Les sujets de maths pour la programmation
Fermé
dabigben
Messages postés
1914
Date d'inscription
vendredi 23 novembre 2007
Statut
Membre
Dernière intervention
13 octobre 2023
-
12 nov. 2013 à 10:40
Idéophage Messages postés 43 Date d'inscription mardi 21 août 2012 Statut Membre Dernière intervention 23 novembre 2013 - 20 nov. 2013 à 19:36
Idéophage Messages postés 43 Date d'inscription mardi 21 août 2012 Statut Membre Dernière intervention 23 novembre 2013 - 20 nov. 2013 à 19:36
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
- Sujet de tfc déjà travaillé pdf - Forum Bases de données
7 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
Modifié par KX le 12/11/2013 à 19:08
Modifié par KX le 12/11/2013 à 19:08
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
scinarf
Messages postés
1119
Date d'inscription
samedi 18 novembre 2006
Statut
Membre
Dernière intervention
25 septembre 2014
252
12 nov. 2013 à 13:19
12 nov. 2013 à 13:19
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
dabigben
Messages postés
1914
Date d'inscription
vendredi 23 novembre 2007
Statut
Membre
Dernière intervention
13 octobre 2023
179
14 nov. 2013 à 09:36
14 nov. 2013 à 09:36
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 ?
dabigben
Messages postés
1914
Date d'inscription
vendredi 23 novembre 2007
Statut
Membre
Dernière intervention
13 octobre 2023
179
15 nov. 2013 à 11:40
15 nov. 2013 à 11:40
Vous n'avez pas utilisé de livre pour apprendre tout ça vous ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
scinarf
Messages postés
1119
Date d'inscription
samedi 18 novembre 2006
Statut
Membre
Dernière intervention
25 septembre 2014
252
15 nov. 2013 à 15:59
15 nov. 2013 à 15:59
J'ai suivi les cours donnés lors de ma formation c'est à dire prépa math spé info et école d'ingénieurs.
dabigben
Messages postés
1914
Date d'inscription
vendredi 23 novembre 2007
Statut
Membre
Dernière intervention
13 octobre 2023
179
19 nov. 2013 à 11:30
19 nov. 2013 à 11:30
Et ils ne t'ont pas fait acheté de livre ?
Idéophage
Messages postés
43
Date d'inscription
mardi 21 août 2012
Statut
Membre
Dernière intervention
23 novembre 2013
5
Modifié par Idéophage le 20/11/2013 à 19:47
Modifié par Idéophage le 20/11/2013 à 19:47
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).