Bonjour serait-il passible de me dire si mes résultats sont corrects svp. Par avance merci beaucoup.
Des mathématiciens grecs (probablement de l'école de Pythagore, aux VI et V -ème siècles avant J-C) représentaient certains nombres à l'aide de polygones ( nombres polygonaux). Les nombres triangulaires en sont un exemple. Un nombre triangulaire Tn est un nombre qu'on représente à l'aide de points assemblés pour former un triangle comme sur les figures ci-dessous.
1) Déterminer T5 et T6
T5 =15 et T6 = 21
2) Exprimer Tn+1 en fonction de Tn.
Tn+1 = Tn + n+1
3) On considère la fonction Python ci-dessous. Interpréter le résultat obtenu quand on exécute la commande triangle (20).
def triangle (n):
T=1
for i in range (1,n):
T=T+i+1
return T
T20 = 210
4) On veut écrire une fonction de seuil qui permet de déterminer le plus petit nombre triangulaire qui dépasse 2000.
Compléter cette fonction ci-dessous et déterminer le plus petit nombre triangulaires qui dépasse 2000 et son rang.
def seuil (...) :
T=1
n=1
while ........ :
n= ......
T= ........
return n, T
sur cet exercice je suis bloqué je n'ai pas vu le fonction seuil pouvez vous m'aider svp.
Bonjour,
la fonction seuil est une fonction que l'on définit soi même justement par le programme que l'on te demande d'écrire
def seuil(...):
veut dire que l'on définit notre fonction seuil comme faisant ce qui suit :
initialiser T à 1 et n à 1
puis effectuer une boucle while
etc
de la même façon que la ligne
def triangle(n) définissait une fonction "triangle" prenant en entrée le nombre n et faisant ce qui suit :
initialiser T à 1 etc etc.
donc évidemment que tu ne "verras" (!) jamais la fonction seuil : on te demande à toi de la créer !
avec le squelette imposé dans l'énoncé, tu n'as que à compléter les "trous" "..."
déja, que va-t-on mettre comme paramètre d'entrée ? là :
def seuil(...):
qu'est ce qu'on veut faire d'après l'énoncé ?
etc.
Question 4
On te demande de créer une fonction Python appelée seuil qui permette de déterminer le plus petit nombre qui donne un nombre de points
dans ton triangle tel que
.
Tu peux définir une fonction générale appelée seuil qui calculera la valeur de à partir de laquelle le nombre de points
dans ton triangle est supérieur ou égal au seuil
de ton choix.
def seuil(s):
t = 1
n = 1
**** supprimé ****
Petite précision :
Si tu es obligé de respecter l'ordre des termes dans ton script
*** bien sur ! on demande de compléter un script EXISTANT
pas d'en imaginer un autre à partir de rien. ***
Howard75
on t'a déja dit que faire les exos à la place du demandeur n'était ABSOLUMENT PAS dans l'optique de ce forum.
Modérateur.
Bonjour,
J'ai commencé le programme de cette façon :
Def seuil (s) :
T = 1
n = 1
While T ≤ 2000
n = n + 1
T = T + 1 + n
return n,T
Est-ce bon ?
Oui et non
ton programme manque de généraliité car il ne résout que pour T > 2000 et ton paramètre d'appel s n'est pas utilisé
comme le disait Howard75
"est supérieur ou égal au seuil s de ton choix"
il faut comparer à s, pas à la valeur numérique fixe 2000.
n'existe pas en Python, on écrit <=
tu peux tester ton programme en vrai sur un interpréteur Python :
sur certaines calculettes,
en ligne sur Internet, par exemple replit ou bien d'autres
ou un interpréteur installé sur ton PC
ça te permettra de répondre à la question de l'exo en tapant en ligne de commande
seuil(2000)
mais si tu veux un nombre triangulaire > 1000000 tu taperais juste
seuil(1000000)
le script lui-même étant inchangé
c'est l'avantage de définir une fonction plutôt que un programme fixe testant par rapport à 2000 fixe
PS
T = T+n+1 n'est pas bon non plus
essayons
au départ T = 1 et n = 1
1ere boucle
n devient 2
et donc T devient 1 + 2 + 1 = 4 alors que T2 vaut 3 et pas 4
Du coup le programme est :
def seuil() :
T = 1
n = 1
While <= 2000
n + 1 = 1
T + n = T
Return n,T
du coup je trouve n=63 et T=2016.
Est-ce cela ?
je ne pense pas que tu trouves quoi que ce soit avec
n+1 = 1
et T+n = T
!!
tu avais écrit correctement
n = n+1
T = T+ ...
(corrigé donc en T =T+n)
et en plus tu n'as pas corrigé correctement le while.
relis ce que j'ai dit à ce propos.
nota:
quand on cite le programme que l'on a réellement exécuté, il vaut mieux faire un copier-coller exact que de le retaper de travers.
⚠️ J'ai bien pris note qu'il ne fallait pas apporter de solution toute faite à un élève mais le guider vers la résolution de son exercice par ses propres moyens et donc dans cet esprit je vais t'expliquer comment le résoudre par toi-même en te guidant pas à pas ! 😉
ÉNONCÉ
Compléter la fonction seuil écrite en Python ci-dessous de sorte qu'elle permette de déterminer le plus petit nombre triangulaire qui dépasse points, autrement dit, le plus petit rang
à partir duquel le nombre de points
dans ton triangle est
.
def seuil(...):
# INITIALISATION
t = 1
n = 1
# BOUCLE
while ...:
n = ...
t = ...
# RETOUR DE LA FONCTION
return n, t
s = int(input("s = "))
n, t = seuil(s)
print("t >=", s, " à partir de n =", n)
for rang in range(1, n+1):
points += rang
print("Rang", rang, ":", points, "points dans le triangle")
Merci de supprimer mon message précédent qui contient quelques petites erreurs qui ont leur importance si on passe une valeur à la fonction seuil qui correspond à un triangle parfait.
modérateur edit : non,
c'est celui ci dont j'expurge ce qui est identique. ou qui n'apporte rien du tout.
...
...
# BOUCLE
while ...: # réfléchis au cas où t = s et tu comprendras pourquoi il ne faut pas juste écrire t < s
ceci était déja vu de lui même par le demandeur !!
...
restons dans l'exercice tel qu'il est
for rang in range(1, n+1):
points += rang
print("Rang", rang, ":", points, "points dans le triangle")
Bonsoir, je viens de faire des corrections
def seuil() :
T = 1
n = 1
While T < 2000
n = n + 1
T = T + n
Return n,T
Du coup, je retrouve n=63 et T=2016
Est-ce bon ?
L'intérieur de ta boucle while ainsi que le résultat obtenu sont bons.
n = n+1
t = t + n
seuil(???)
while ???
n, t = seuil(10)
print("Rang", n, ":", t, "points")
n, t = seuil(2000)
print("Rang", n, ":", t, "points")
oui et surtout NON
le fait de mettree des choses demandées (donc exigées) dans la définiion
def seuil(• • •):
impose de mettre un paramètre d'appel et pas rien du tout .
def seuil(s):
et ensuite par conséquent d'utiliser ce paramètre s pour que la fonction envoie le plus petit T > s
que s soit 2000 ou n'importe quelle valeur lors de l'utilisation de cette fonction.
quand on l'invoquera par seuil(2000) pour répondre à la question
ou n'importe quelle autre valeur
seuil(6) renverra le plus petit T tel que T > 6 c'est à dire T4 = 10
seuil(1000000) renverra le plus petit T > 1000000
etc etc
Ah oui d'accord, du coup c'est bien ?
def seuil(S) :
T = 1
n = 1
While T < S
n = n + 1
T = T + n
Return n,T
voilà parfait.
et pour l'utiliser, une fois le script lancé (il ne se passe rien à part définir la fonction)
tu exécutes cette fonction en tapant en ligne de commande seuil(2000) ou toute autre valeur
bien plus simple que ce que te suggère Howard75 avec ses "print" pour lesquels il faudrait modifier et relancer le module entier pour changer de valeur. ou utiliser un input etc
en dehors de ce qui est demandé dans l'exo.
while t < s + 1:
D'ailleurs, petite précision, il y a 2 manières de faire au choix :
1ère solution
while t <= s:
while t < s+1:
je n'avais pas vu cette nouvelle erreur par rapport à ce que Loulou2813 avait déja PARFAITEMENT VU il y a déja longtemps
Def seuil (s) :
T = 1
n = 1
While T ≤ 2000
n = n + 1
T = T + 1 + n
return n,T
Bonjour serait-il passible de me dire si mes résultats sont corrects svp. Par avance merci beaucoup.
1) Montrer que pout tout entier n?1 , 2*T(n)= n(n+1).
2*T(n)=n(n+1)
T(n)= n(n+1)/2
T(n)?1
n(n+1)/2?1
n(n+1)/2-1/1?0
n(n+1)/2-1*2/2?0
n(n+1)-2/2?0
n²+n-2/2?0
?=b²-4ac= 1²-4*1*(-2)=-7
?< 0 donc le trinôme admet pas de racine
a>0
x ?? +?
n²+n-2 +
n²+n-2/2 +
S=]-? ;+? [
ou je doit fait faire ça
{ ? ? ? ? ? ? ? ? ?
{ { ? ? ? ? ? ? ? ? ?
n { { { ? ? ? ? ? ? ? ? ?
{ ? ? ? ? ? ? ? ? ?
-------------------------------------
T(n+1)
Pour que T(n) soit un nombre entier, il faut que n/2 ou (n+1)/2 soit égal à 1. Seuls les nombres T1= 1 et T2= 3. Le seul nombre triangulaire premier est donc 3.
2) 4005 est-il un nombre triangulaire ?
oui 4005 est un nombre triangulaire car quand nous faisons le programme:
def seuil (4005):
T= 1
n= 1
while t ? 4005
n=n+1
T= T+i+1
return n,T
Cela nous donne le chiffre 4005 et son rang qui est 89.
sur cet exercice je suis bloqué, pouvez vous m'aider svp.
*** message déplacé ***
multipost interdit
toutes les questions d'un même exo dans le même sujet
Bonjour serait-il possible de me dire si mes résultats sont corrects svp. Par avance merci beaucoup.
1) Montrer que pout tout entier n≥1 , 2*T(n)= n(n+1).
2*T(n)=n(n+1)
T(n)= n(n+1)/2
T(n)≥1
n(n+1)/2≥1
n(n+1)/2-1/1≥0
n(n+1)/2-1*2/2≥0
n(n+1)-2/2≥0
n²+n-2/2≥0
∆=b²-4ac= 1²-4*1*(-2)=-7
∆< 0 donc le trinôme admet pas de racine
a>0
x −∞ +∞
n²+n-2 +
n²+n-2/2 +
S=]-∞ ;+∞ [
ou je doit fait faire ça
{ □ □ □ □ □ □ □ □ □
{ { □ □ □ □ □ □ □ □ □
n { { { □ □ □ □ □ □ □ □ □
{ □ □ □ □ □ □ □ □ □
-------------------------------------
T(n+1)
Pour que T(n) soit un nombre entier, il faut que n/2 ou (n+1)/2 soit égal à 1. Seuls les nombres T1= 1 et T2= 3. Le seul nombre triangulaire premier est donc 3.
2) 4005 est-il un nombre triangulaire ?
oui 4005 est un nombre triangulaire car quand nous faisons le programme:
def seuil (4005):
T= 1
n= 1
while t ≤ 4005
n=n+1
T= T+i+1
return n,T
Cela nous donne le chiffre 4005 et son rang qui est 89.
sur cet exercice je suis bloqué, pouvez vous m'aider svp.
Bonjour,
il s'agit dans ces questions (partie B) de démontrer, pas d'utiliser les programmes précédents.
1)
il faut à partir de la définition de la suite montrer que etc
pas de de faire des calculs "à la noix" avec équations etc .
la définition de la suite c'est :
T1 = 1et pour tout n >1
Tn = Tn-1 + n (question 2 de la partie A, écrite autrement)
c'est à partir de ça et de rien d'autre qu'on doit démontrer que 2Tn = n(n+1)
et pas de partir d'un supposé 2Tn = n(n+1) qu'on ne sait pas encore, (c'est ce qu'on veut démontrer)
pour cela on peut utiliser le cours sur les suites arithmétiques
T1 = 1
T2 = T1 + 2
T3 = T2 + 3
...
Tn-1 =Tn-2 + (n-1)
Tn = Tn_1 + n
additionnons tout ça et simplifions ce qui ,est à la fois à droite et à gauche du =
il reste Tn = 1 + 2+3 + ... + (n-1) + n
je te laisse terminer
et si tu n'as pas encore vu les suites arithmétiques en cours
tu peux écrire :
Tn = 1+ 2 + 3 + ... + (n-1) + n
Tn = n + (n-1) + ... + 2 + 1
-----------------------------------
2Tn = ...
Quant à la question 2) de cette partie B c'est
l'équation n(n+1) = 2*4005 a-t-elle pour solution un nombre entier ?
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :