Aller au contenu

Exercice de spé factorielles


est01

Messages recommandés

Posté(e)

Bonjour à tous et toutes, j'ai un exercice à faire en spé et j'avoue que je suis vraiment perdue.
J'ai mis le sujet en pièce jointe.
Je n'ai réussi qu'à faire le 1. Je n'ai jamais utilisé ce logiciel et je n'y comprends rien. On a jamais vu cela en classe
Voici mes réponses:
2!=1*2=2
3!=1*2*3=6
4!=1*2*3*4=24

21!=5,1090942*10^19
52!=8,0658175*10^67
103!=9,902901*10^163 

 

Merci d'avance à ceux qui prendront le temps de m'aider

Numériser 17.png

  • Réponses 112
  • Created
  • Dernière réponse
  • E-Bahut
Posté(e)

Bonjour,

Cet exercice ne présente pas de difficulté extrême si tu sais traduire les codes XCAS en langage naturel.

En clair, peux tu me dire en français la signification de chacune des lignes sur le code ci-contre  (dans ton sujet) de la question 1. Le code qui définit la fonction nbzeros(n).

Posté(e)

Je suis nulle en algorithme , je vous jure, ça fait depuis lundi soir que j'essaie de comprendre cet exercice, je ne comprends rien mis à part la première partie .

merci de m'avoir répondu

  • E-Bahut
Posté(e)

21!=51090942171709440000

52!=80658175170943878571660636856403766975289505440883277824000000000000

103!=99029007164861804075467152545817733490901658221144924830052805546998766658416222832141441073883538492653516385977292093222882134415149891584000000000000000000000000

  • E-Bahut
Posté(e)
il y a 7 minutes, Barbidoux a dit :

21!=51090942171709440000

52!=80658175170943878571660636856403766975289505440883277824000000000000

103!=99029007164861804075467152545817733490901658221144924830052805546998766658416222832141441073883538492653516385977292093222882134415149891584000000000000000000000000

Bonsoir Barbidoux :)

Tu noteras que Barbidoux a corrigé la première partie. Je pensais la corriger avec le code mais ce n'est pas grave.

il y a 12 minutes, marcsa a dit :

Je suis nulle en algorithme , je vous jure, ça fait depuis lundi soir que j'essaie de comprendre cet exercice, je ne comprends rien mis à part la première partie .

merci de m'avoir répondu

Tu as encore deux semaines pour ça donc, ça ne restera pas comme ça et comme tu es spé maths, tu ne peux pas rester nulle. Quel est ton manuel de maths obligatoire ?

Posté(e)

je n'ai jamais utilisé ce logiciel , c'est du chinois pour moi , pour le moment je n'ai fait que des algorithmes sur casio (et la je comprenais)

 

  • E-Bahut
Posté(e)

Ce n'est pas le cours le plus pédagogique que l'on puisse imaginer mais c'est une base de départ. 

Lis http://revue.sesamath.net/spip.php?article241

Puis essaye de me décrire le rôle de chaque ligne. Soyons clair, si je le fais à ta place, tu ne sauras pas refaire en contrôle. Je préfère essayer de te guider.

Courage !

Posté(e)

Merci !! 

B1:   je pense que la ligne manquante est:compteur:=compteur+1;

b, je pense que c'est: retourne c-1

b3, je pense qu'il faut compter les 5 ,le nombre de 0 à la fin, c'est la puissance de 5 quand on fait la décomposition de n!

mais je ne suis pas sûre du tout et surtout je ne sais pas comment justifier 

  • E-Bahut
Posté(e)

Si tu as trouvé toute seule chapeau ! Soyons franc, j'ai quelques doutes que tu aies fait ça seule à la lumière de ce que tu disais en début de fil. Peux tu m'expliquer le fonctionnement de ces programmes ? Je tiens à être sûr que tu aies compris ces questions pour la suite.

Posté(e)

Pour la B1 je me suis dit que c'est comme quand on fait N+1->N sous casio

de plus, j'ai compris que retourne compteur;
veut dire que ce programme "retourne" (renvoie, répond) la valeur de la variable compteur. 

d'où Pour la B2 j'ai déduit "retourne c-1" car c est la variable de départ et vaut 1

Pour la b3, en toute honnêteté, je l'ai trouvé sur internet car je n'ai pas compris la question

Posté(e)

j'ai tapé les 2 programmes sur Xcas mais ça ne marche pas, ça me marque "Compatibilité de la syntaxexcas
Erreur grammaticale ligne 4 colonne 4 à :=" pour le premier , et "Compatibilité de la syntaxexcas
Erreur grammaticale ligne 4 colonne 9 à :=" pour le deuxième(cf PJ) 

Capture d’écran 2016-10-19 à 23.22.31.png

Posté(e)
Il y a 2 heures, Boltzmann_Solver a dit :

Ce n'est pas le cours le plus pédagogique que l'on puisse imaginer mais c'est une base de départ. 

Lis http://revue.sesamath.net/spip.php?article241

Puis essaye de me décrire le rôle de chaque ligne. Soyons clair, si je le fais à ta place, tu ne sauras pas refaire en contrôle. Je préfère essayer de te guider.

Courage !

1er algorithme: "local" correspond aux noms des  variables

Les deux lignes suivantes correspondent aux valeurs de départ de chaque variable

Le tant que est une boucle, tant qu'un nombre est égal à la partie entière, la boucle continue; à chaque fois qu'on incrément de 1, q prend la valeur q/10

La dernière ligne nous donne la valeur de la variable compteur.

2ème algorithme: "local" correspond aux noms des  variables

Les deux lignes suivantes correspondent aux valeurs de départ de chaque variable

Le tant que est une boucle, tant que le reste de la division euclidienne de n par p=0 on continu la boucle, à chaque fois qu'on incrément de 1,c prend la valeur c+1 et p prend la valeur 10^c

La dernière ligne donne la valeur de la variable c

                          

  • E-Bahut
Posté(e)
il y a 17 minutes, marcsa a dit :

j'ai tapé les 2 programmes sur Xcas mais ça ne marche pas, ça me marque "Compatibilité de la syntaxexcas
Erreur grammaticale ligne 4 colonne 4 à :=" pour le premier , et "Compatibilité de la syntaxexcas
Erreur grammaticale ligne 4 colonne 9 à :=" pour le deuxième(cf PJ) 

Capture d’écran 2016-10-19 à 23.22.31.png

Il manque des points-virgule à certaines lignes

 

il y a 5 minutes, marcsa a dit :

1er algorithme: "local" correspond aux noms des  variables

Les deux lignes suivantes correspondent aux valeurs de départ de chaque variable

Le tant que est une boucle, tant qu'un nombre est égal à la partie entière, la boucle continue; à chaque fois qu'on incrément de 1, q prend la valeur q/10

La dernière ligne nous donne la valeur de la variable compteur.

2ème algorithme: "local" correspond aux noms des  variables

Les deux lignes suivantes correspondent aux valeurs de départ de chaque variable

Le tant que est une boucle, tant que le reste de la division euclidienne de n par p=0 on continu la boucle, à chaque fois qu'on incrément de 1,c prend la valeur c+1 et p prend la valeur 10^c

La dernière ligne donne la valeur de la variable c

                          

Il y a quelques imprécisions mais ça semble de toi (je suis rassuré :)). On peut continuer sur une base solide^^.

Pour la B-3, tu sais que n peut s'écrire comme n = 5k +u avec k dans N et u dans {0;1;2;3;4} (à justifier). Ainsi, tu peux conjecturer que le nombre de 0 dans n! est donné par k.

Tu le démontreras dans la partie suivante.

Posté(e)
Il y a 8 heures, Boltzmann_Solver a dit :

 

Pour la B-3, tu sais que n peut s'écrire comme n = 5k +u avec k dans N et u dans {0;1;2;3;4} (à justifier). Ainsi, tu peux conjecturer que le nombre de 0 dans n! est donné par k.

Tu le démontreras dans la partie suivante.

u dans (0,1,2,3,4) car il faut il faut 0=<u<k.

Mais je ne comprends  pas pourquoi on met 5 et pas un autre nombre ?

De plus j'ai rajouté les points-virgules et maintenant mes programmes sont corrects, mais même en lisant vos liens, je n'arrive pas à trouver comment le faire tourner

Posté(e)

J'ai fait un essai avec la fonction factoriser_entier : 

pour 10!, j'ai 2^8*3^4*5^2*7

et 10!=3628800

Je remarque qu'il y'a 2 zéros et que l'exposant de 5 est 2.

Il faut juste que je dise ceci dans ma conjecture ?

 

Posté(e)

Est-ce que c'est juste  si, pour la 2, je mets dans ma copie "la fonction est censée renvoyer un nombre de zéros car on a "retourne compteur", donc c'est la variable compteur qui doit contenir ce nombre de zéros, or on ne fait qu'initialiser le compteur, donc il ma la ligne pour incrémenter le compteur, d'où le "compteur:=compteur+1" ?

 

Posté(e)

Voilà ce que je ferais pour la C1

nbCinq(m):={
local compteur, q;
compteur:=0;
q:=m/5
tant que q==floor(q) faire
compteur = compteur+1;  
q:=q/10
ftantque;
retourne compteur;
}:; 

  • E-Bahut
Posté(e)
Il y a 9 heures, marcsa a dit :

J'ai fait un essai avec la fonction factoriser_entier : 

pour 10!, j'ai 2^8*3^4*5^2*7

et 10!=3628800

Je remarque qu'il y'a 2 zéros et que l'exposant de 5 est 2.

Il faut juste que je dise ceci dans ma conjecture ?

 

Bonsoir Marcsa,

Il faut en faire plusieurs. Un essai, c'est peu pour une conjecture.

Je te propose un tableau excel avec :

n | k = (n-u)/5 | u = mod(n,5) | n! | Nb zeros | Forme factorisée.

Tu peux faire ça facilement.

  • E-Bahut
Posté(e)
Il y a 8 heures, marcsa a dit :

Est-ce que c'est juste  si, pour la 2, je mets dans ma copie "la fonction est censée renvoyer un nombre de zéros car on a "retourne compteur", donc c'est la variable compteur qui doit contenir ce nombre de zéros, or on ne fait qu'initialiser le compteur, donc il ma la ligne pour incrémenter le compteur, d'où le "compteur:=compteur+1" ?

 

Pas vraiment besoin de le dire, je pense. Le sujet ne semble pas attendre du justification. Sinon, ce n'est pas si mal comme justification :). Ca ne remplace pas une analyse complète du code mais c'est l'argument massue.

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...
spam filtering
spam filtering