begin process at 2012 02 16 19:35:35
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths

 > FACTORIELS ET COMBINAISONS

FACTORIELS ET COMBINAISONS


 Information sur la source

Note :
4,5 / 10 - par 2 personnes
4,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths Classé sous :factorielle, combinaison Niveau :Débutant Date de création :16/07/2005 Date de mise à jour :25/11/2005 21:42:45 Vu / téléchargé :13 998 / 1 084

Auteur : Julien39

Ecrire un message privé
Site perso
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Calcul des factoriels avex une fonction et utilisation de cette même fonction pour calculer les combinaisons. Les interets sont multiples deux fonctions sont présentes, on en utilise une dans une autre, utilisation de boucles for, interet mathématique évident.

Source

  • Function Combinaison(n As String, k As String) As String
  • 'Les deux premieres étapes évitent des calculs évidents
  • If k = 0 Or n = k Then
  • Combinaison = 1
  • Exit Function
  • End If
  • If k = 1 Or k = n - 1 Then
  • Combinaison = n
  • Exit Function
  • End If
  • Combinaison = Factoriel(n) / (Factoriel(k) * Factoriel(n - k))
  • End Function
  • Function Factoriel(n As String) As String
  • Dim f As String
  • If n <= 1 Then
  • 'Par convention 0!=1
  • Factoriel = 1
  • Else
  • Factoriel = n * Factoriel(n - 1)
  • End If
  • End Function
Function Combinaison(n As String, k As String) As String
'Les deux premieres étapes évitent des calculs évidents

If k = 0 Or n = k Then
   Combinaison = 1
   Exit Function
End If

If k = 1 Or k = n - 1 Then
   Combinaison = n
   Exit Function
End If

Combinaison = Factoriel(n) / (Factoriel(k) * Factoriel(n - k))

End Function

Function Factoriel(n As String) As String
Dim f As String

If n <= 1 Then
   'Par convention 0!=1
     
   Factoriel = 1
Else
   Factoriel = n * Factoriel(n - 1)
End If

End Function


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

18 juillet 2005 06:55:00 :
Modifications suite au commentaire de Zlub.
25 novembre 2005 21:42:45 :
Code

 Sources du même auteur

Source avec Zip GÉNÉRATEUR DE MOTS DE PASSE
Source avec Zip CARRÉ PAR MÉTHODE DE L'ABAQUE
Source avec Zip Source avec une capture ETUDE DE FONCTIONS ALÉATOIRES
Source avec Zip Source avec une capture FONCTION VRAIMENT ALÉATOIRE
Source avec Zip Source avec une capture MATHÉMATIQUES PÉDAGOGIQUES

 Sources de la même categorie

Source avec Zip Source avec une capture CONVERTISSEUR HEXAVIGÉSIMAL par shaeks
Source avec Zip Source avec une capture Source .NET (Dotnet) CRYPTOGRAPHIE AFFINE par Tigrou66
Source avec Zip Source avec une capture SCANNER FLEX par lajouad
Source avec Zip EQUATIONSECONDDEGRÉ,MATH,DEGRÉ par shadkitenge
Source avec Zip Source .NET (Dotnet) SOMME DE CHIFFRES CONTENUE DANS UN NOMBRE par alpha5

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) NOMBRES PRIMORDIAUX par alpha5
Source avec Zip CALCUL DÉTAILLÉ DE FACTORIEL par danbo
Source avec Zip Source avec une capture POK_CALC POUR LE POKER TEXAS HOLDEM par roro_1
Source avec Zip Source avec une capture Source .NET (Dotnet) COMBILETTRE : LOGICIEL DE COMBINAISON DE LETTRES par mickael1986
Source avec Zip CALCUL DE LA FACTORIELLE D'UN NOMBRE AVEC TOUS SES CHIFFRES ... par violent_ken

Commentaires et avis

Commentaire de Zlub le 18/07/2005 02:42:35

Factorielle pour le recursif, c'est pas mal non plus

Function Factoriel(n As String) As String
  If n <= 1 Then
    Factoriel = 1
  Else
    Factoriel = n * Factoriel(n - 1)
  End If
End Function

Idem pour les combinaisons:

Function Combinaison(n As Integer, p As Integer) As Integer
    If (p = 1) Then
      Combinaison = n
    ElseIf (p = n) Then
      Combinaison = 1
    Else
      Combinaison = (Combinaison(n - 1, p - 1) + Combinaison(n - 1, p))
    End If
End Function


dans Command5_Click tu peux utiliser une seule variable temporaire :
   tmp = Text2.Text
   Text2.Text = Text3.Text
   Text3.Text = tmp

++

Zlub

Commentaire de Julien39 le 18/07/2005 06:58:01 administrateur CS

J'ai effectué les modifications et c'est assez subtil surtout Factoriel = n * Factoriel(n - 1). Cependant je ne pense pas que Combinaison = (Combinaison(n - 1, p - 1) + Combinaison(n - 1, p)) apporte quelque chose de supplémentaire au programme (en plus sa le ralentit)

Commentaire de Zlub le 18/07/2005 10:47:33

vi forcement la recursivitée, ça fait souvent mal niveau charge processeur, à cause des empilement de contextes...

Pour combinaison, c'est juste pour te presenter une autre façon de programmer la fonction de calcul (sur même modele que factorielle). Mais c'est clair que niveau performance c'est pas le top ...

Commentaire de Zlub le 20/07/2005 08:12:44

J'avais pas vu tes autres sources ... sans vouloir te blesser ... Hé man, faut que t'arretes de pondre des applis de math avec la même interface graphique :)

J'sais pas moi, éclates toi à faire autre chose ... trouves toi une idées de soft qui te plait et trace...

Commentaire de rambc le 28/09/2005 10:39:54

Pour info., la méthode récursive pour calculer une combinaison devient intéressante pour des TRES gros entiers car elle fait disparaître des multiplications et des divisions qui peuvent être TRES coûteuse en temps pour de TRES gros entiers .

Commentaire de amezghal le 10/03/2006 17:08:01

je trouve que tu evite pas les erreurs dans ce code
exemple ci on a entré comme valeur pour le factoriel(-5)
car dans ton code t'a ecrit
if i<=1 then y a pas de factoriel pour les négatfs
merci

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Combinaison de touche [ par margoulin ] BonjourVoila, je veux faire un prog qui tournerai tout le temps. Lorsque celui qui ecris a l ecran tape A. (a majuscule suivi d'un point) toutes les i Comment savoir si un utilisateur fait une combinaison de touches sur le clavier [ par neo ] Comment puis-je faire pour savoir si un utilisateur fait une combinaison de touches sur le clavier (ex Ctrl+Alt+r+y) ? Problème avec GetAsyncKeyState. [ par Philipina ] Salut,J'utilise la fonction GetAsncKeySate pour détecter la combinaison des touches CTRL-P. Malheureusement cette API garde les touches en mémoire ce ctrl label [ par olys ] Bonjour,J'aimerais savoir s'il est possible dans un label de mettre seulement une partie de celui-ci en gras par le biais d'une combinaison de chr(xx) Combinaison chaîne de charactères [ par Spr ] Bonjour, je cherche à partir d'un mot à trouver toutes les combinaisons possibles que l'on peut faire avec les lettres qu'il contient.Ex: mot tmo keybd_event et NT [ par twingorouge ] Bonjour,Je cherche à faire un \ avec keybd_event sous NTle code 92 ne fait rien, la combinaison Alt GR + 8 ne fait rien non plus, Avez-vous une soluti demande daide [ par polo26 ] SalutJ'ai un très gros problèmeC'est quoi??J'ai 8 critères de recherche dans ma base de donnéeLes combinaison possible c'est un peux prés de : 16 777 Combinaison de Caractéres [ par ITALIA ] Salut,Comment avoir toutes les combinaisons sur 3 caractéres ( par Ex) de Chr(32) à Chr(126)Merci d'avanceIt@li@ Combinaison de touche sous windows [ par Patrik ] Bonjour,Je souhaite obtenir le caractere x barre (moyenne) est-il possible de combiner 2 saisie exemple sous word en tapant alt + 120 donne x peut on HELP! comment désactiver la combinaison clavier CTRL+ESC?? [ par asel ] voilà, la qst est dans le titre, je voudrais savoir comment désactiver (et réactiver) cette combinaison de touches, car j'ai trouvé comment faire pour


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales