Salut,
Je suis en 1ère S. J'ai un exercice à faire pour la rentrée sur lequel je bloque depuis le début des vacances. Je finis donc par venir demander de l'aide... Je suis dans le chapitre des suites numériques.
C'est l'exercice suivant :
Un milieu de culture contient 5 bactéries à l'instant t=0.
- A t=1 seconde, le milieu contient le double de bactéries moins 1 bactéries qui a disparu.
- A t=2 secondes, le milieu contient le double de bactéries moins 2 bactéries qui ont disparu.
- A t=n secondes, le milieu contient le double de bactéries présentes au bout de n-1 secondes moins n bactéries qui ont disparu.
Questions :
1. Écrire un algorithme qui donne le nombre de bactéries présentes dans la solution au bout de n secondes.
2. Au bout de combien de secondes le nombre de bactéries est-il supérieur à 20000 ?
Voilà, le problème c'est qu'on n'a pas vu les algorithmes et que je ne sais plus comment on les fait. J'ai trouvé que pour trouver le nombre de bactéries au bout de n secondes il fallait faire 2(n-1)-n mais je ne sais pas comment le mettre sous forme d'algorithme...
Et pour la question 2, j'ai trouvé manuellement qu'il fallait 13 secondes pour dépassé les 20000 bactéries mais je pense qu'il faut utiliser l'algorithme pour répondre.
Merci de m'aider ! (;
Bonjour,
bonjour
si on appelle Un la suite qui correspond au nb de bactéries au bout de n secondes
,
d'après l'énoncé, on peut écrire
U0 = 5
U1 = 2 * U0 - 1
U2 = 2 * U1 - 2
...
Un = 2 * Un-1 - n
comprends-tu pourquoi "2(n-1)-n" est faux ? calcule pour n=2, pour vérifier.
---
pour la question 2, j'ai trouvé manuellement qu'il fallait 13 secondes
pour l'algo, commence par décrire en langage naturel cette démarche que tu as faite manuellement,
sous forme de successions d'étapes : ça va te servir de base pour construire l'algo ensuite.
--
"on n'a pas vu les algorithmes et que je ne sais plus comment on les fait"
si tu ne sais plus comment on les fait, c'est que tu les as déjà vus
lorsque tu auras décrit les étapes, structure ton algo :
- quelles variables sont nécessaires ici?
- quelles initialisations dois-je faire ? (= quelle valeur à attribuer au départ à quelle variable)
- quels calculs dois-je demander? combien de fois ?
- quelle variable je vais afficher en sortie?
Merci pour les deux réponses ! Je comprends mieux maintenant !
J'ai déjà vu les algorithmes l'année dernière mais rapidement et je ne les ai pas refait cette année alors c'est un peu dur de me remettre dedans... Mais je vais essayer !
Merci encore !
Dans ton passé algorithmique , avais tu utilisé ALGOBOX ?
Si oui, cela vaut la peine de t'y remettre (logiciel gratuit et simple à mettre en oeuvre).
Oui je pense que je l'avais utilisé une fois... Tu as raison, je vais essayer de m'aider avec !
Merci
Pour le premier algo :
VARIABLES
Bacteries EST_DU_TYPE NOMBRE
duree EST_DU_TYPE NOMBRE
i EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
Bacteries PREND_LA_VALEUR 5
LIRE duree
POUR i ALLANT_DE 1 A duree
DEBUT_POUR
Bacteries PREND_LA_VALEUR (2 * Bacteries - i)
FIN_POUR
AFFICHER "population de bactéries après "
AFFICHER duree
AFFICHER "secondes : "
AFFICHER Bacteries
FIN_ALGORITHME
Merci Glapion pour l'algobox en ligne, je l'ai utilisé et il m'a bien aidé !
Et merci J-P, j'ai compris ton algorithme et je les fait sur algobox, ça marche évidemment !
Mais ne puis-je pas tout simplement pour la question 2, utiliser le même algorithme et rentrer duree =20 par exemple et changer jusqu'à ce que je trouve la bonne durée ?
Merci encore
je réponds à cette question :
Mais ne puis-je pas tout simplement pour la question 2, utiliser le même algorithme et rentrer duree =20 par exemple et changer jusqu'à ce que je trouve la bonne durée ?
oui, il n'est pas demandé de faire un algo pour cette question 2)
tu peux utiliser celui de 1)
ceci dit, à titre personnel, rien ne t'empêche de t'entrainer à faire un second algo qui affichera la durée pour une qté de bactéries donnée (=saisie).
dit très schématiquement:
un langage de programmation est la syntaxe que l'on doit utiliser pour que la machine comprenne et exécute nos instructions (notre programme).
dans le cas d'algobox, tu vois que les instructions se rédigent en un langage assez proche de notre langage naturel : ce langage de programmation est un interface, volontairement assez simple à utiliser, entre "notre" logique et le fonctionnement un peu complexe des entrailles d'une machine.
pour des déf. plus formelles, je laisse la place aux puristes
Pour l'algo 2 (si on veut en faire un) :
On peut partir de l'algo 1, mais avec une différence fondamentale.
On ne sait pas, a priori, le nombre de secondes utiles et donc, on ne peut pas utiliser une boucle fermée comme :
POUR i ALLANT_DE 1 A duree
DEBUT_POUR
Bacteries PREND_LA_VALEUR (2 * Bacteries - i)
FIN_POUR
Il faut une boucle ouverte ... qui attend qu'une condition testée dans la boucle soit respectée pour sortir de la boucle.
Dans algobox, une telle boucle peut être :
TANT_QUE (Bactreries < 20000) FAIRE
DEBUT_TANT_QUE
Bacteries PREND_LA_VALEUR (2 * Bacteries - i)
FIN_TANT_QUE
Il faut penser à insérer dans la boucle un "compteur" qui compte le nombre de boucles effectuées.
Et en sortie de boucle, il suffira d'afficher la valeur de ce "compteur" qui sera l'image du temps demandé.
-----------
On peut évidemment aussi traiter le problème autrement qu'en implémentant un algorithme.
... ou bien faire les 2 méthodes pour vérifier si les réponses trouvées concordent.
On peut aussi résoudre le problème 2 en utilisant un tableur (comme Excel ou ...)
On peut aussi démontrer que :
U(n) = 4 * 2^n - (1+n).(n-2)/2
Mais c'est un peu plus difficile que de laisser travailler un algo.
Et cette relation n'est pas très pratique à manipuler pour répondre à la question 2.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :