Salut, j´ai un exerccie en C++ à faire mais j´pige rien du tout
!
Alors, je vais recopier l´énoncé :
--------------------------------
La factorielle d´un entier n nom négatif s´écrit avec l´expression n! ( prononcez " factorielle n") et se définit de la façon suivante :
n! = n . ( n-1) . ( n-2) . . .. . 1 ( pour des valeurs de n supérieures ou égales à 1)
et
n! = 1 ( pour n=0)
Par exemple, 5! = 5 . 4 . 3 . 2 . 1, ce qui donne 120.
a) Ecrivez un programme qui lit un entier non négatif, calcule et affiche sa factorielle.
b) Ecrivez un programme qui estime la valeur de la constante mathémathique en utilisant la formule :
1 1 1
e = 1 + -- + -- + -- + . ..
1! 2! 3!
c) Ecrivez un programme qui calcule la valeur de ex utilisant la formule :
x x² x³
e = 1 + -- + -- + -- + . ..
1! 2! 3!
--------------------------------
Voila, maintenant, j´ai des questions :
1. Que veut dire factorielle ?
2. Ca sert à quoi ?
3. Comment ça marche ?
4. Pouvez vous m´expliquer la question b) ?
5. J´comprens pas la formule du c) Vous pouvez me l´expliquer ?
Pouvez vous m´expliquer à peut près tout sur les facorielles ?
J´pense que j´ai fait le tour des questions !
Merci ![]()
1) Factorielle est une opération mathématique au même titre que la multiplication.
2) Dans la vie de tous les jours : à rien,en informatique : je n´ai pas encore trouvé.
3) Bah tu as la formule au début de l´énoncé donc tu sais comment ça marche.
Pour le reste aucune idée.
Merci, au fait pout les formules, tous les chiffres ont été décalés, ils faut les remettrent sous les barres
Merci ![]()
![]()
vu l´exercice ca sent la terminale
1) Comme l´a dit Sarafan.
2) Ca sert a simplifier les notations: 4! est plus simple a ecrire que 4*3*2. On trouve beaucoup les factorielles en probabilites. Par exemples si on a trois chiffres ( disons 1, 2 et 3)combien de facon de les trier y a-t-il? On a 123,132,213,231,312,321. Soit 6 combinaisons, c´est a dire 3! L´idee, c´est que quand on prend un chiffre pour le mettre en premier, on a trois possibilites. Apres pour le deuxieme il reste deux possibilites et c´est fini. C´est valable avec tout entier positif n et il y a n! factorielle facon de les ordonner.
Apres on peut batire sur ca ( combinatoire, arangements...), bref ca sert en math.
En info ca sert quand on traite de certains problemes, pour savoir par exemple combien on a de cas a traiter. Exemple concret: le representant de commerce qui doit visiter n villes et cherche l´itineraire le plus court. Combien y a-t-il d´itineraires possibles? n!, gagne.
3) comme Sarafan
4)"e" est une contante mathematique ( comme pi). Elle sert a calculer les exponentielles. La formule donnee est celle permettant d´en calculer un approximation. La question montre comment utiliser le calcule de la factorielle fait juste avant. e=1+1/1!+1/2!+1/3!+1/4!... On a une egalite si on continue a ajouter des termes jusque a la fin des temps. Si on s´arrete a 10!, on a une approximation. Bien sure, plus on en calcule et plus l´approximation est precise.
5) Si je me rappelle bien, c´est la formule du calcule de l´exponentielle. L´exponentielle de x se note soit exp(x), soit e^x ( e puissance x, ou e est celui calcule juste avant). Bref c´est une autre application. Attention, il s´agit de calculer e^x=1+(x/1!)+(x^2/2!)+(x^3/3!)+...
La encore la formule est infinie ( du moins sous cette notation
) et on doit donc s´arreter tot ou tard, ce qui donne une approximation.
Voila, j´espere avoir ete comprehensible :p
bon moi j´ai fai ca cette anné au premier semestre ( en info)
sinon j´ai vu ke t´a 13 ans donc ca m´etonne pas ke tu connaisse pas les factoriel
si je me souvien bien on voit sa en premiere avec des proba
sinon voila un prog
program " facto";
var
i,x,r:integer;
begin
x:=-1
while x<0 do
begin
writeln ( ´donne un entier positif´);
readln(x);
end;
r:=x;
i:=x;
while x>1 do
begin
x:=x-1;
r:=r*x;
end;
writeln(i,´! =´,r) ;
end.
bon je sais c´est en pascal mais je n´ai fai ke sa a la fac
ps: si kelkun ki konnai pascal pouvai me dir si ce ke j´ai mis est bon
put1 ca comence mal j´ai oublié " ;" dès la 5eme ligne apres x:=-1
Merci à vous 3 ![]()
Bon, bin j´ai plus qu´à bien relire tout ce que vous avec écrit. ( Ca ma l´air un peu compliqué ces factorielles
)
Salut ![]()
la factorielle est utilisée pour calculer les constantes des coefficients binomiaux dans la forume du binome de newton ( généralement on se sert du traiangle de pascal jusqu´a 15-20 mais apres c trop long alors on revient a la formule)
on a aussi besoin de sa dans la forume des polynomes de Bernstein, et aussi une simplification de la construction géométrique de Bézier et plusieurs autre chose notament en raisonnement par récurence.
lol
n´oublie pas qu´il a 13 ans ! Parle lui pas Bézier !
sinon, aussi, utilisé en combinatoire pour les combinaisons ( tu vas me dire que C ce qui sert a calculer la formule du binome)
aussi les arrangements, dans les probabilités, la loi binomiale, les développements limités...
bref, un truc qui peut bien servir
tout à fait.
sinon freedix on va pas te donner un programme tout fait sinon tu n´apprendras pas et tu te plantera aux partiels.
on peut t´aider pour les maths, mais la prog a toi de la faire !
si tu veu plus de details sur la factorielle voila:
en fait c tres tres simple une factorielle ca fait ca:
0! = 1 ( convention)
1! = 1
2! = 2*1 = 2
3! = 3*2*1 = 6
4! = 4*3*2*1 = 24
etc...
tu as comrpis ?
ca ne marche qu´avec des nombres entiers naturels!
et ca monte tres tres vite par exemple
15! = 1 307 674 368 000
tu vois ca !
d´ailleur on dit que exponentielle est un petit o de factorielle ( c´est la négligeabilité au voisinage de l´infini)
Merci Lightness ![]()
PS : Je voulais pas le programme, je voulais juste comprendre ce qu´était les factorielles !
Pu*** à force de parler de vos courbes de bézier, etc... ca me fait penser à mon cours de méthode numérique que je dois étudier mon ma seconde session... c´est l´horreur !
peuton me dir si mon prog marche
svp
merki
voila un programme qui devrait marcher :
int factorielle(int n)
{
if ( n<=1) return 1;
return n*factorielle(n-1);
}
void main()
{
int n;
printf("entrez n\n");
scanf("%d",&);
printf("factorielle de n est : %d\n",factorielle(n));
getchar();
}
je pense que ton programme pascal doit marcher, c´est une méthode itérative que tu as fait.
juste au dessus, je propose une méthode récursive.
tu peu marker nimporte koi je n´ai jamé fé de C, C++
pour moi c´est du chinoi
d´un point de vue memoire, c´est pas mieux comme ca?
int factorielle(int n, int a)
{
if ( n<=0)
return -1;
else if ( n==1)
return a;
else
return factorielle(n-1, a*n);
}
void main()
{
int n, a=0;
printf("entrez n\n");
scanf("%d",&);
printf("factorielle de n est : %d\n",factorielle(n, a));
getchar();
}
bon, c´est fait a la va-vite...
Ta fonction prenant 2 int en paramètre alors que celle de jy² un seul, elle provoquera un stack overflow à partir d´un n plus petit que celle de jy², j´appelle pas ça mieux d´un point de vue mémoire.
et
if ( n<=0)
return -1;
factorielle 0 c´est 1 pas -1