Bonjour,
Je dois faire un grand calcul, il s'agit d'une factorielle d'un chiffre qui vole autour des 500... Seulement, ce satané programme me met #NOMBRE! . Donc, dois-je en déduire, que je peux oublier de calculer cela avec un tel programme?
Y aurait-il des freeware qui permette ce gnere de calcul?
Est-ce que c'est dur à programmer qqch en toppascal qui permettrait un calcul de cela...
En fait c'était pour résoudre une permutation avec répétition... Donc, s'il y a des programmes exprès pour...
Sinon, le plus simple serait de résoudre les factorielles non développées, juste?
Merci et pardon.
Bonne journée.
Bonjour,
Program Factorielle;
uses Wincrt;
Var I, N,F : Integer;
Begin
Repeat
Write('N :');
Readln(N);
Until N>=0;
F : = 1;
For I : = 1 To N Do
F : = F * I;
Write('Le produit factorielle est :',F);
End.
Estelle
Ca a pas l'air de marcher... il connait pas le user et les :.
Enfin, la j'ai pas le temps de regarder le problème plus en détail... (Faut que j'aille faire le ménage )
Mais Estelle, pour apprendre à taper ca, tu as eu un cours et tout, ou t'as regarder le fichier d'aide ou des tutorials en linge ?
Bonjour alpha20020,
a. Si tu donnes l'entier dont tu veux la factorielle, je peux te donner le résultat en passant par Java et sa classe BigInteger.
b. Si tu donnes ton énoncé, on peut peut-être t'aider.
c. Pour mon information, qu'appelles-tu une "permutation avec répétition" ?
Cordialement,
Nicolas
(Salut Nicolas.)
Alpha : quel "user" ?
Je ne me suis pas servi des tutoriaux en ligne, mais on a fait un peu de PAscal au lycée.
Estelle
Nicolas>
a.+b. Pour la factorielle, vais simplifier le tout, normalement ca ira... Mais c'est gentil...
c.
où n1+n2+3+...=n
C'est quelque chose dans ce style, mais on aviat une table qui employait un np
pour donner une fin à la formule. Notre professeur nous disais de démontrer celà avec les lettres aabbb
On a 5 lettres, donc P5 mots indiscernables. Ensuite si je les note ainsi a1 a2 b1 b2 b3 j'aurai P2 . P3 mot discernables. Donc, si je veux savoir tout les mots indiscernables différents, sans que j'ai par exemple a1 a2 b1 b2 b3, a2 a1 b2 b1 b3, etc. Enfin, j'ai tapé ca en vitesse. Mais je peux aller rechercher dans mes notes, si tu veux plus de détails...
d. Sans commentaires
Estelle> Pardon, erreur de frappe...
Et sinon pour ce qui est de la programmation, si je dois me mettre à un langage, vous me conseillerez lequel? Ca dépendra de ce que je veux faire, non? Mais niveau polyvalence, lequel sera le plus polyvalent...
Bonne journée...
édit Océane
Bonjour, Estelle.
alpha20020, merci pour ton explication. Je vois parfaitement de quoi tu parles.
Pour ma part, j'appelle cela les "permutations avec éléments indiscernables", mais c'est la même chose. Et le coefficient avec les factorielles qui intervient est souvent appelé "coefficient multinomial".
Nicolas
Je vais me faire taper sur les doigts, mais le coefficient, c'est bien la division ou il y a les factorielles? Et le multinomal signifie quelque chose de spécial?
500! = 1,220136825991110068701238785723.10^1134 dixit la calculette fournie avec Windows.
C'est vrai que cela dépasse les capacité de calcul de Excel.
Sauf erreur,
500! = 12201368259911100687012387854230469262535743428031928421924135883 85845373153881997605496447502203281863013616477148203584163378722 07817720048078520515932928547790757193933060377296085908627042917 45478824249127263443056701732707694610628023104526442188787894657 54777149863494367781037644274033827365397471386477878495438489595 53753799042324106127132698432774571554630997720278101456108118837 37095310163563244329870295638966289116589747695720879269288712817 80070265174507768410719624390394322536422605234945850129918571501 24870696156814162535905669342381300885624924689156412677565448188 65065938479517753608940057452389403357984763639449053130623237490 66445048824665075946735862074637925184200459369692981022263971952 59719094521782333175693458150855233282076282002340262690789834245 17120062077146409794561161276291459512372299133401695523638509428 85592018727433795173014586357570828355780158735432768888680120399 88238470215146760544540766353598417443048012893831389688163948746 96588175045069263653381750554781286400000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000|FIN
Nicolas
édit Océane
Concernant Pascal, c'est bizarre qu'il ne reconnaise pas "uses", chez moi (bien que ça ne marche quand même pas ) il n'y a pas de problème avec.
Estelle
Est-il possible que 500! soit trop grand pour Pascal ?
J'ai modifié un peu le programme, et maintenant ça marche. 3!=6 ; 4!=24 ; mais pour 500!, j'ai 0
Je vais créer un nouveau topic à propos de ce programme pour ne pas polluer celui d'alpha.
Estelle
Tu dépasses tout simplement la "taille" possible d'un entier en Pascal.
En Java, c'est +/- 9.10^18 (sauf classe BigInteger). En Pascal, je ne sais plus...
Continue seulement ici, ca le pollue pas, ou en tout cas si tu en crée un autre, j'espère ne pas le louper...
Nicolas, merci encore pour tes précisions...
Bref, allez la suisse et bonne soirée
Merci Alpha.
En fait, je crois qu'il y a un problème dans mon programme, parce que jusqu'à 7!, tout marche, mais pour 8!, il ne trouve plus la bonne valeur.
Quelqu'un a une idée d'où cela peut venir ? La limite n'est tout de même pas entre 5040 et 40320 ?!
Estelle
Salut Estelle,
Je reviens sur ma remarque : "je ne me souviens pas à partir de quelle valeur il y a un problème de mémoire".
Oublie-là .
Le souci de mémoire n'intervient pas dans cette procédure-ci (j'ai vraiment besoin de sommeil ).
à+
Bonjour cinnamon,
Je ne sais pas ce qu'est la récursivité. Je vais me renseigner pour essayer de comprendre ton programme.
Merci
Estelle
-Estelle_
En fonction de la version de turbo Pascal employée, la taille mémoire réservée pour une variable Integer diffère.
Sur d'anciennes versions du Turbo Pascal, la taille était de seulement 16 bits, comme l'Integer est un nombre signé, sur ces versions, un Integer peut varier de -32768 à +32767
Comme 7! = 5040, pas de problème, mais 8! = 40320 et donc n'est pas permis.
Sur d'autres versions de Turbo Pascal, une variable Integer est en 32 bits, et dans ce cas pas de problème avec 8!
-----
Estelle,
La récursivité n'est rien d'autre qu'une sorte de récurrence descendante.
On fait appel à la fonction... au coeur de la fonction.
Le programme proposée par cinnamon reprend exactement la définition suivante de la factorielle :
Nicolas
Moi j'ai toujours conçu qu'un procédé "récursif" est un procédé par récurrence, montante ou descendante
Je suis d'accord avec toi sur le principe, stokastik : récurrence montante ou descendante.
Mais mon expérience me porte à croire que c'est la plupart du temps une récurrence descendante.
Mais chacun fait comme il veut...
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :