Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

compléter et programmer un algorithme en python

Posté par
Nelcar
24-04-19 à 18:28

Salut,
et toujours en python
l'exercice est :

On considère la fonction f définie sur [0;100].
On admet que la fonction f est croissante sur [0;100].
1) quel est le maximum de f sur l'intervalle de [0;100] ?
j'ai trouvé 1 000 300 je doute fortement
2) compléter l'algorithme ci-dessous pour qu'après exécution, la variable N contienne le plus petit entier naturel n tel que f(n) >=15000
N  0
Y   200
tant que..... j'ai mis y<=15000
    N     ..... j'ai mis N + 1
    y   N**3+N+200
Fin tant que
3) programmer une fonction en langage Python retournant le plus petit entier nautrel n tel que f(n) >=15000. Déterminer cette valeur
j'ai fait
def f():
   n=0
   y=200
   while y<=15000:
       n=n+1
       y=n**3+n+200
   return(n)
dans la console j'ai trouvé 25

MERCI

Posté par
mathafou Moderateur
re : compléter et programmer un algorithme en python 24-04-19 à 18:47

Re,

ta fonction f n'est pas définie
il faut la deviner à partir du programme ???
1) une fonction croissante sur un intervalle [a; b] a forcément (par définitions) son maximum = f(b) donc c'est bon.

le reste semble cohérent

attention !!
le copier coller ne copie pas des caractères spéciaux qui seraient non standard ou qui seraient en fait des images
pour "simuler" \leftarrow on peut écrire (à la main) <--

Posté par
mathafou Moderateur
re : compléter et programmer un algorithme en python 24-04-19 à 18:50

PS : le contraire de >= 15000 est <15000 strictement, pas <= 15000

Posté par
alb12
re : compléter et programmer un algorithme en python 24-04-19 à 19:32

salut, la fonction du 3/ ne peut pas s'appeler f

Posté par
mathafou Moderateur
re : compléter et programmer un algorithme en python 24-04-19 à 19:51

dans le 3 il y a un programme qui doit répondre à une certaine question et on peut l'appeler comme on veut
il est certes très maladroit de l'appeler f alors qu'il na pas pour but du tout de calculer la valeur de la fonction f de l'énoncé !!
mais ça ne veut pas dire qu'on ne peut pas le faire !!

Posté par
Nelcar
re : compléter et programmer un algorithme en python 24-04-19 à 20:02

Merci de vos réponses.
MATHAFOU : donc je peux mettre n'importe quel nom de la fonction, je vais donc éviter de mettre f et je vais mettre def  entier():
je pense que ça peut aller
pour la question une , je n'ai pas tout compris dans ta réponse, moi j'ai trouvé un maximum de 1 000 300 est ce bon ?
car tu me mets :
1) une fonction croissante sur un intervalle [a; b] a forcément (par définitions) son maximum = f(b) donc c'est bon.
ici l'intervalle est de 0 à 100 donc le maximum est 100 alors ?
qu'est ce que je met comme réponse 100 ou 1 000 300 ?

si j'ai bien compris dans la question 3 (le programme) a while je doit mettre while y<15000:
c'est bien ça.
Merci encore.

Posté par
mathafou Moderateur
re : compléter et programmer un algorithme en python 24-04-19 à 20:21

1) le f(b) c'est pas b
f(100) ce n'est pas100 !!
le maximum est pour x = 100 et vaut (ce maximum) f(100)
ce qui fait bien f(100) = 1000300

je te disais en fait que pour répondre à une question on doit en donner la justification et pas juste cracher un résultat.


y<15000 : dans le programme, et dans l'algorithme question 2 (vu que l'un est juste la traduction mot à mot de l'autre)

Posté par
alb12
re : compléter et programmer un algorithme en python 24-04-19 à 20:35

nommer f la fonction de recherche n'est pas maladroit, c'est une faute.

Posté par
mathafou Moderateur
re : compléter et programmer un algorithme en python 24-04-19 à 20:37

non.
c'est une faute de déontologie si tu veux.

Posté par
Nelcar
re : compléter et programmer un algorithme en python 24-04-19 à 20:55

OK pour vos réponses
Mathafou : oui j'avais bien trouvé mais je me suis très mal expliquée.
Alb12: je mets def entier():
comme cela pas d'histoire
Merci à vous deux
bonne soirée

Posté par
alb12
re : compléter et programmer un algorithme en python 24-04-19 à 23:43

Ton module se presente ainsi:


def f(x):
    return x**3+x+200

def plus_petit_entier():
    n=0
    y=200
    while y<15000:
        n=n+1
        y=f(n)
    return n

Posté par
mathafou Moderateur
re : compléter et programmer un algorithme en python 25-04-19 à 00:00

certes,
mais l'algorithme de la question 2 de l'énoncé n'est pas

tant que.....
N \leftarrow ...
y \leftarrow f(N)
Fin tant que

mais
tant que.....
N \leftarrow ...
y \leftarrow N**3+N+200
Fin tant que
(cela était écrit comme ça dans l'énoncé et seuls les "..." étaient à compléter

il n'était donc pas exigé de définir f(x) dans une fonction à part de Python !!
même si "déontologiquement" ("les règles de bonne pratique en programmation", "ce qu'il est recommandé de faire") ce sera préférable ...

surtout que l'énoncé ne demande pas d'écrire un module mais juste une fonction.

Posté par
Nelcar
re : compléter et programmer un algorithme en python 25-04-19 à 07:35


Bonjour,
Mathafou :  ok pas de soucis j'ai bien compris
Alb 12: nous sommes au début donc ..... pas trop compliqué (je suis en seconde)

Merci de votre aide.
Bonne journée



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1510 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !