IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

probleme random.random python [Python 3.X]


Sujet :

Python

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 8
    Par défaut probleme random.random python
    Bonjour à tous,

    je dois écrire un programme.

    Un individu gravit un escalier. Il effectue des pas d’une ou deux marches selon le protocole suivant : à chaque fois, avant de faire un pas, il lance une pièce donnant pile avec la probabilité p ∈]0, 1[ ; il progresse ensuite d’une marche s’il obtient «pile» ou enjambe deux marches d’un coup s’il obtient «face».

    Donc j'ai un problème. J'ai écrit le code suivant correspondant donc à ces trois questions ( a la fin).

    J'ai le code d'erreur suivant :

    Traceback (most recent call last):

    File "<stdin>", line 1, in <module>

    File "C:\Users\\Downloads\WinPython-64bit-3.4.3.5\python-3.4.3.amd64\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 685, in runfile

    execfile(filename, namespace)

    File "C:\Users\Downloads\WinPython-64bit-3.4.3.5\python-3.4.3.amd64\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 85, in execfile

    exec(compile(open(filename, 'rb').read(), filename, 'exec'), namespace)

    File "C:/Users/Desktop/", line 59, in <module>

    hauteur=hauteur(n,p)

    File "C:/Users//Desktop/", line 38, in hauteur

    variable=pas(p)

    File "C:/Users//Desktop/", line 28, in pas

    if random.random()<p:

    AttributeError: 'builtin_function_or_method' object has no attribute 'random'

    >>>

    voici le code que j 'ai tapé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    # -*- coding: utf-8 -*-
    """
    Created on Sat Jan  2 14:35:51 2016
     
     
    """
     
    # PARTIE 1
     
    import random
     
    import matplotlib.pyplot as plt
    import statistics
    from pylab import*
     
     
     
     
    def pas(p):
     
        if random.random()<p:
            nbredemarches=1
        else:
            nbredemarches=2
        return nbredemarches
     
    def hauteur(n,p):
        sommetotaldemarches=0
        variable=0
        for k in range (0,n,1):
            variable=pas(p)
            sommetotaldemarches=variable+ sommetotaldemarches
     
        return sommetotaldemarches
     
    def nombre (n,p):
        nombredepaseffectue=0
        variable=0
        while variable<n:
            sommetotaldemarches=hauteur(n,p)
            variable=variable+sommetotaldemarches
            nombredepaseffectue=nombredepaseffectue+1
        return nombredepaseffectue
     
    n=50
    p=0,4
     
    for k in range (0,2*n,1):
        plt.plot([k,k,k+1,k+1],[k,k+1,k+1,k+2],'k')
     
     
    hauteur=hauteur(n,p)
    plt.plot([hauteur,hauteur+1],[hauteur,hauteur],'r')
     
    plt.show()
    et voici les questions qui m'ont permis d'effectuer ce cheminement.


    2.En déduire une fonction Python nommée pas qui prend en entrée le réel p ∈]0, 1[ et renvoie le nombre de marches gravies par l’individu lors d’un pas. 3. Ecrire une fonction Python nommée hauteur qui prend en entrée un entier n ∈ N ∗ et le réel p ∈]0, 1[, puis qui renvoie le nombre de marches gravies par l’individu à l’issue de n pas.

    4. Ecrire une fonction Python nommée nombre qui prend en entrée un entier n ∈ N ∗ et le réel p ∈]0, 1[, puis qui renvoie le nombre de pas justes nécessaires pour atteindre ou dépasser la n-ième marche.

    5. A la suite des fonctions précédentes, écrire des instructions Python – qui affectent à n la valeur 50 et à p la valeur 0.4, – puis qui tracent en noir un escalier à 2n marches et un point rouge

    Merci pour votre aide.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 681
    Par défaut
    Salut,

    Citation Envoyé par looping97 Voir le message
    J'ai le code d'erreur suivant :

    File "C:/Users//Desktop/", line 28, in pas

    if random.random()<p:

    AttributeError: 'builtin_function_or_method' object has no attribute 'random'
    Si l'interpréteur ne trouve pas la fonction random dans le module random, c'est que votre module random n'est pas ce qu'il prétend.
    Une des causes les plus courantes est d'avoir créé un script random.py pour effectuer quelques tests.
    C'est ce script là qui sera lu par "import" et non le module random attendu.
    Avec un peu de chance, ce script traine dans "C:/Users//Desktop/"", sinon, il faut le trouver avec un petit programme qui fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import random
    print (random.__file__)
    et le renommer en autre chose.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 8
    Par défaut
    En effet vous aviez raison. J'avais fait un import de pylab qui apparemment comporterait un random aussi. Je l'ai donc supprimé et tout va bien maintenant puisqu'au final cet import ne me servait à rien pour la suite
    Merci pour votre aide

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur développement informatique scientifique
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement informatique scientifique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Par défaut
    Citation Envoyé par looping97 Voir le message
    En effet vous aviez raison. J'avais fait un import de pylab qui apparemment comporterait un random aussi. Je l'ai donc supprimé et tout va bien maintenant puisqu'au final cet import ne me servait à rien pour la suite
    Merci pour votre aide
    Bonjour,

    un peu hors-sujet, mais la même chose avec numpy (adapté de http://www.dakarlug.org/pat/scientif...tml/numpy.html ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        import numpy as np
        import matplotlib.pyplot as plt
     
        proba_pile = 0.6  # probabilité de tire pile
        nb_pas = 100
        walk = np.random.choice(2, nb_pas, p=[proba_pile, 1.0 - proba_pile]) + 1
        cum_walk = np.cumsum(walk)
     
        plt.plot(np.arange(nb_pas), cum_walk)
    Sinon, il vaux mieux éviter de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    from pylab import*

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme avec random!
    Par ryma87rh dans le forum C++Builder
    Réponses: 13
    Dernier message: 28/03/2009, 12h55
  2. Probleme de random
    Par equinoxs dans le forum Général Python
    Réponses: 10
    Dernier message: 27/08/2008, 18h20
  3. Probleme Fonction Random
    Par GTJuanpablo dans le forum C#
    Réponses: 3
    Dernier message: 17/02/2007, 13h11
  4. Probleme de random
    Par Julien1987 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/01/2007, 23h11
  5. probleme avec random boolean
    Par petitenovice dans le forum Langage
    Réponses: 2
    Dernier message: 11/12/2006, 09h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo