Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

algo math

Posté par
Nearraa
07-03-21 à 10:59

bonjour j'ai un petit soucis avec un exo que je ne comprend pas voici l'énoncé:

f est la fonction définie sur l'intervalle [1;500] par f(x)= x(24-√x) Mélanie affirme:<<pour tout nombre réel x de [1; 500],f(x) est inférieur ou égal a 2000.>>
Voici un programme incomplet écrit en langage python permettant de vérifier si l'affirmation de Mélanie est vraie ou non.

le code incomplet:

from math import*

def f(x):
    y = x*(24-sqrt(x))
    return y

d=0
for k in range (1,501):
    if.................:
        d=1
if d==1:
    print("Affirmation fausse")
else:
    print("Affirmation fausse")


Je doit trouver se qui va dans la ligne neuf pour executer le code ma logique me dit que y est le résultat et que donc l'affirmation est fausse dans le cas ou y est supérieur a 2000 voila donc le code que j'ai fait:

from math import*

def f(x):
    y = x*(24-sqrt(x))
    return y


d=0
for k in range (1,501):
    if y < 2000:
        d=1
if d==1:
    print("Affirmation fausse")
else:
    print("Affirmation fausse")


mais voila le problème c'est que cela me met que que y n'est pas définit je ne comprend pas merci de votre aide

Posté par
mathafou Moderateur
re : algo math 07-03-21 à 11:08

Bonjour,

y est locale à l'interieur de la fonction f(x) et est inconnu en dehors

c'est f(k) qu'il faut mettre pour calculer la valeur de f pour x = k

une fois ça corrigé il ne devrait plus y avoir d'erreur de syntaxe
mais un résultat faux par rapport à ce qu'on veut vérifier

si on trouve une valeur de k pour laquelle f(x) < 2000
(et d'après Mélanie c'est vrai partout)
alors on met d à 1, et il y reste

à la fin, si d==1 que dit on alors ?

Posté par
mathafou Moderateur
re : algo math 07-03-21 à 11:11

et puis ça m'étonnerait que à la fin dans chacun des deux cas on dise la mêm chose "affirmation fausse" !

Posté par
Nearraa
re : algo math 07-03-21 à 11:30

ha oui désolé je m'excuse je n'avais pas vu que j'avais mit 2 fois fausse j'ai réctifié donc le programme est celui ci par le fait:

from math import*

def f(k):
    y = k*(24-sqrt(k))
    return y


d=0
for k in range (1,501):
    if f(k) < 2000:
        d=1
if d==1:
    print("Affirmation fausse")
else:
    print("Affirmation vrai")

Posté par
Nearraa
re : algo math 07-03-21 à 11:33

pardon pour que cela rentre dans mon énoncé il ne faut pas que je modifie le x
cela donne cela ducoup:

def f(x):
    y = x*(24-sqrt(x))
    return y


d=0
for k in range (1,501):
    if f(k) < 2000:
        d=1
if d==1:
    print("Affirmation fausse")
else:
    print("Affirmation vrai")


merci pour votre aide je comprend mieux

Posté par
mathafou Moderateur
re : algo math 07-03-21 à 11:39

mais le résultat du programme est faux !
même si f(x) <= 2000 quel que soit x, il va prétendre que c'est faux !
c'est ton test qui n'est pas bon d'un point de vue logique.

Citation :
si on trouve une valeur de k pour laquelle f(x) < 2000
(et d'après Mélanie c'est vrai partout)
alors on met d à 1, et il y reste

à la fin, si d==1 que dit on alors ?

(et on ne modifie pas la fin, c'est le test du if qui est faux)

Posté par
Nearraa
re : algo math 07-03-21 à 11:46

je ne comprend pas bien que faut t'il que je fasse la partie fausse est celle que j'ai faite c'est a dire avec le if le reste m'est donné je n'ai pas le choix de le garder j'en déduis que ma partie est donc fausse mais je ne comprend pas?

Posté par
Nearraa
re : algo math 07-03-21 à 11:48

si d==1 alors l'affirmation est fausse

Posté par
Nearraa
re : algo math 07-03-21 à 11:52

le programme de base me dit que si d==1 alors l'affirmation est fausse je ne peut pas modifier cette partie elle est fixe a l'inverse si d n'est pas égal a 1 alors l'affirmation sera vrai

Posté par
Leile
re : algo math 07-03-21 à 11:58

Nearraa,
c'est la condition dans le    "if ....... "   que tu dois changer.

Posté par
mathafou Moderateur
re : algo math 07-03-21 à 12:03

Citation :
c'est le test du if f(x) < 2000 qui est faux

relis mes explications

dit autrement :
d sera mis à 1 si au moins une fois un certain événement se produit (défini par ce if là)
et si cet événement ne se produit jamais d restera à 0

que doit être cet événement (donc compléter correctement le if à compléter) pour faire ce qu'on veut que le programme fasse ?

que veut dire de façon logique "pour toutes les valeurs de x" ?
"pour tout x : f(x) <= 2000"
veut dire : "il n'existe aucun x tel que f(x) > 2000"

Posté par
Nearraa
re : algo math 07-03-21 à 12:03

donc dans la logique si le résultat de f(k) est inférieur a 2000 c'est donc censé me donné affirmation vrai jusque la normalement c'est bon dans le cas contraire si f(k) est supérieur a 200 sa met d a 1 donc l'affirmation est fausse
mais je ne comprend pas bien comment l'appliquer

Posté par
Nearraa
re : algo math 07-03-21 à 12:07

supérieur a 2000*

Posté par
mathafou Moderateur
re : algo math 07-03-21 à 12:11

tu l'as dit :
si f(k) est supérieur a 2000 sa met d a 1 donc l'affirmation est fausse

Posté par
Nearraa
re : algo math 07-03-21 à 12:12

daccord mais je ne comprend pas comment intégrer sa dans mon if je suis complétement perdu

Posté par
Nearraa
re : algo math 07-03-21 à 12:14

ha oui daccord j'avais inversé
if f(k) > 2000:

Posté par
Nearraa
re : algo math 07-03-21 à 12:15

mais cela m'indique toujours faux

Posté par
mathafou Moderateur
re : algo math 07-03-21 à 12:26

voila.

et ça te dit "faux" parce que il est vrai que l'hypothèse de mélanie est fausse comme tu le démontreras dans les questions suivantes de l'exo...

(avec l'erreur de codage il te disait que c'était faux même si cela avait été vrai)

Posté par
Nearraa
re : algo math 07-03-21 à 12:33

d'accord un grand merci pour votre aide



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 1675 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 !