bonjour , je suis en 1re et j'ai un exercice a faire pour lundi j'aimerai de l'aide s'il vous plait et une explication claire .
Exercice:
je dois donner un algorithme (et le programmer en Python) pour résoudre le problème suivant :
Trouver le plus petit entier naturel x tel que f(x)=17 où f(x) = 205x+5 divisé par x au carré +1
merci pour toutes les personnes qui m'aideront
x= 0 , f(0) = 5
ce n'est pas égal à 17, donc on continue
x = 1, f(1) = 105
ce n'est pas égal à 17, donc on continue
etc...
peux tu ecrire la fonction PlusPetitEntier ?
def f(x):
return (205*x+5)/(x*x+1)
def PlusPetitEntier():
x=??
while ??:
??
return x
pgeod
bonsoir oui cela je sais faire mais c'est le faites de devoir programmer qui me pose probleme je ne sais pas par quoi commencer pour realiser mon programme
alb12
donc en gros je met
def f(x):
return (205*x+5)/(x*x+1)
def PlusPetitEntier(n):
n=17
x=1
while ??:
??
return x
je sais pas du tous comment faire (par quoi remplir les casses vides )
def f(x):
return (205*x+5)/(x*x+1)
def PlusPetitEntier(n):
x=15
while ??:
refaire
return x
je sais que c'est quand x vaut 15 que je trouve un entier naturel >17
la fonction n'a pas d'argument donc rien dans ()
l'entier c'est x pas de n dans ce programme
tant que f(x) est different de 17 faire
faire quoi ?
tant que f(x) est different de 17 faire
faire quoi ?
tant que f(x) est different de 17 faire (facile à traduire en python)
faire quoi ? (il faut repeter le calcul pour x=0 puis 1 puis 2 etc cad à chaque tour de boucle remplacer x par l'entier qui suit)
bon je n'ai pas tout vu, on reprend
on demarre avec x à 0
tant que f(x) est different de 17 faire
remplacer x par x+1
retourner x
on essaie encore une fois ?
ok bon travail
def f(x):
return (205*x+5)/(x*x+1)
def PlusPetitEntier():
x=0
while f(x)!=17:
x+=1 # ou bien x=x+1
return x
def f(x):
return (205*x+5)/(x*x+1)
def PlusPetitEntier():
x=0
while f(x)!=17:
x+=1 # ou bien x=x+1
return x
Bonjour,
pas de syntax error chez moi en copiant collant directement tel quel sans rien taper (source d'erreurs de recopie).
par contre pour le lancer ne pas oublier d'appeler la fonction avec PlusPetitEntier() en ligne de commande pour qu'elle s'exécute !
lancer juste le programme ne fait rien du tout tout à part juste définir deux fonctions sans les utiliser.
je voudrais signaler un loup grave
rien ne dit à priori que un tel entier existe (pour lequel f(n) serait égal exactement à 17)
il pourrait bien y avoir la succession de valeurs 5, 11, 13.4, 17.5 etc sans jamais obtenir exactement 17
il est donc nécessaire de poser un garde fou pour éviter le risque de boucle infinie parcourant désespérément l'ensemble des nombres entiers sans fin
donc un truc du genre
tant que f(x) ≠ 17 et x < une limite fixée
et tout à la fin si x ≥ cette limite cela veut dire que dans cet intervalle on n'a pas trouvé
ensuite cette valeur de 17 qui sort d'un chapeau , on pourrait avoir intérêt à la mettre en paramètre de la fonction PlusPetitEntier()
PlusPetitEntier(n) :
...
while f(x)!=n ...
...
oui mais 17 est donne donc mettre n en argument ne s'impose pas ici.
quant à la boucle infinie c'est peut etre ce qui est prevu lors de la correction.
si Tropicale en fait trop, son prof va suspecter un gros coup de pouce
en tout cas ce serait mieux de demander aux eleves d'essayer avec 18 et de les laisser commenter ce qu'il se passe, il faudrait que la correction du code viennent des eleves pas du prof.
notons au passage que la resolution de f(x)=17 a peut etre ete faite.
Une erreur de syntaxe, laquelle ?
SyntaxeError:invalidv syntaxe (line4,offset22): def Plus petit entier(17)
voila le message qui s'incrit lorsque je marque ce que tu m'as dit mathafou
normalement on devrais m'inscrire le resultat en bas en ecrivant x mais rien ne s'inscrit je suis assez décu :
Puis lorsque je clique sur verifier la sytaxe ca me met "syntaxe correcte " c'est seuleument quand j'ecris en bas x ca me met error
c'est faux tu n'as pas copié collé le programme d'ici dans Python
tu l'as retapé en faisant des erreurs de saisie
ce n'est pas
Plus petit entier
mais
PlusPetitEntier() en un seul mot sans espaces
et sans préjuger d'autres erreurs de saisie du même genre ...
je reviens sur l'idee d'un garde fou de mathafou
je verrais:
1/ montrer que si x>20 alors f(x)<11 (sans resoudre d'inequation, par majoration de f(x))
2/ completer le pgm suivant:
def f(x):
return (205*x+5)/(x*x+1)
def PlusPetitEntier():
for x in range(??):
if f(x)==??:
return x
return "pas de solution" # ou mieux return []
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :