Factorielle

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
sable27
Membre Naturel
Messages: 32
Enregistré le: 02 Jan 2009, 16:27

factorielle

par sable27 » 03 Jan 2009, 11:34

bonjour voila je cherche a faire un algo et je cherche des formule pour la factorielle a mettre dedans mais tt simple j'en et trouver une mais il m'en faut une autre solution pouvais vous m'aider

je vous met le code et vous entoure la formule que j'ai trouver (c'est la qu'il faut que je remplace ma formule

var
f : entier
i : entier
n : réel


début

afficher ("entrer n")
saisir (n)

f <- 1
i <- 1

tant que i < n faire
f = f * i
i = i + 1




i<- i+1

ftant

affichage ("n! : ", f)

fin



XENSECP
Habitué(e)
Messages: 6387
Enregistré le: 27 Fév 2008, 19:13

par XENSECP » 03 Jan 2009, 11:36

Tu veux calculer la factorielle d'un nombre entier ? Parce que le plus connu c'est l'algo récursif :)

sable27
Membre Naturel
Messages: 32
Enregistré le: 02 Jan 2009, 16:27

par sable27 » 03 Jan 2009, 11:48

oui d'un nombre entier

de deux manniere la celle que j'ai mis c'est la 1 mais je trouve pas l'autre j'ai chercher sur wiki il me donne des formule mais comme tu le sait lol les math c'est pas mon fort

XENSECP
Habitué(e)
Messages: 6387
Enregistré le: 27 Fév 2008, 19:13

par XENSECP » 03 Jan 2009, 11:54

Il y a la version récursive et l'itérative ^^

L'itérative (que tu as fait) ça donnerai :

function (n : entier)
f : entier // factorielle
f = 1
while (n>0) {
f <- n*f
n <- n-1 }
return f
end


En récursif c'est + simple :
function (n)
if ( n = 0 )
return 1
else
return n*function (n-1)
end

sable27
Membre Naturel
Messages: 32
Enregistré le: 02 Jan 2009, 16:27

par sable27 » 03 Jan 2009, 12:02

pour la deuxième en fait ta fait n*i * (n-1)

dans mon cas (i= nombre de passage)

XENSECP
Habitué(e)
Messages: 6387
Enregistré le: 27 Fév 2008, 19:13

par XENSECP » 03 Jan 2009, 12:03

Non ^^ essaye de l'écrire tu verras ;)
Prends n = 3 et fais marcher mon programme :)

sable27
Membre Naturel
Messages: 32
Enregistré le: 02 Jan 2009, 16:27

par sable27 » 03 Jan 2009, 12:08

non mais c'est ta fonction que je comprend pas j'ai pas encore vu les fonction a la rentrer normalement je c'est pas trop comment sa marche

je doit le faire en boucle le plus simplement possible lol

XENSECP
Habitué(e)
Messages: 6387
Enregistré le: 27 Fév 2008, 19:13

par XENSECP » 03 Jan 2009, 12:10

Pourquoi tu veux faire un algo sans avoir vu le cours... les gens m'épatent parfois !

_-Gaara-_
Membre Complexe
Messages: 2813
Enregistré le: 03 Nov 2007, 14:34

par _-Gaara-_ » 03 Jan 2009, 12:20

prendre de l'avance ? :happy3:

XENSECP
Habitué(e)
Messages: 6387
Enregistré le: 27 Fév 2008, 19:13

par XENSECP » 03 Jan 2009, 12:21

Oui mais prendre de l'avance sans rien maitriser... Je veux dire s'il ne sait pas faire une fonction ça sert à rien de "demander des fonctions réalisant la factorielle" :)

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 03 Jan 2009, 12:25

Salut,

tant que i < n faire
f = f * i
i = i + 1

Tu remplaces par
pour i=1 a n faire
f = f * i
i = i + 1

ou bien l'autre boucle restante :
faire
f = f * i
i = i + 1
tant que i
Je pense pas qu'il s'agisse de la formule a changer, mais plutot du code.
Ou alors, ils veulent que tu te tapes la fonction gamma, mais ca m'étonnerait. Au moins pour les arrondis...
la vie est une fête :)

sable27
Membre Naturel
Messages: 32
Enregistré le: 02 Jan 2009, 16:27

par sable27 » 03 Jan 2009, 14:24

merci pour ta réponse en faite il veulent que je fasse une boucle avec tant que c'est pour ça on a pas encore vu les pour c'est pour ca merci pour votre aide je vais ésséyer de trouver la solution toute seule je ne veut pas que vous vous énerviez a cause de moi dsl

XENSECP
Habitué(e)
Messages: 6387
Enregistré le: 27 Fév 2008, 19:13

par XENSECP » 03 Jan 2009, 14:30

Euh j'ai rien compris !
while = tant que

cf mon algo ;)

sable27
Membre Naturel
Messages: 32
Enregistré le: 02 Jan 2009, 16:27

par sable27 » 03 Jan 2009, 14:41

oups dsl oui while = tant que c'est du vb dsl

sable27
Membre Naturel
Messages: 32
Enregistré le: 02 Jan 2009, 16:27

par sable27 » 03 Jan 2009, 14:45

bon bah c'est bon j'ai mes deux méthode

la mienne qui marche
et la tienne c'est la méme chose mais bon la prof a dit deux méthode pas deux fonction lol sa irra merci bcp

Sub Main()
Dim n As Integer
Dim i As Integer
Dim f As Single

n = InputBox("entrer nombre")
f = 1
i = 1
While (n > 0)
f = n * f
n = n - 1
Wend
MsgBox ("le factoriel est " & f)


End Sub

sable27
Membre Naturel
Messages: 32
Enregistré le: 02 Jan 2009, 16:27

par sable27 » 03 Jan 2009, 14:47

sinon on ma donner un truc comme sa mais je c'est pas si c'est bon j'arrive pas a le faire marcher lol

f = (f * i) * (n+1)

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 44 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite