Nombre pseudo-aléatoire fonction "random"

Fermé
Bubu - 21 déc. 2020 à 11:26
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 21 déc. 2020 à 14:17
Bonjour,
Je dois créer une fonction d'argument (x,a,N) renvoyant une liste N de nombres pseudo-aléatoires distribués uniformément autour de x sur un intervalle a.

J'ai déjà écrit ça:

def serie_mesures(x,a,N):
    M=[]
    for i in range(0,N):
        p=random.random()
        M.append(p)
    return(M)


Mais je ne vois pas comment faire intervenir x et a dans mon programme.


Configuration: Windows / Chrome 86.0.4240.193
A voir également:

4 réponses

Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 21 déc. 2020 à 12:09
Bonjour Bubu,

Déjà, sans parler de code Python, sais-tu comment faire sur le papier ?

Est-ce que tu vois bien ce que signifie ceci :

distribués uniformément autour de x sur un intervalle a

Et as-tu testé ton code tel qu'il est ?
0
Pour la signification de la phrase, j'e l'ai comprise comme cela: "Les nombres doivent être compris dans l'intervalle [x-a,x+a] "

Et oui, j'ai testé mon code, il marche c'est-à-dire qu'il affiche une liste de N valeurs aléatoires entre 0 et 1 mais il ne prend pas en compte x et a.
0
yg_be Messages postés 23407 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 décembre 2024 1 557 > Bubu
21 déc. 2020 à 13:33
bonjour,
ne connais-tu pas une fonction ayant pour origine l'intervalle entre 0 et 1 et pour destination l'intervalle [x-a,x+a]?
0
Bubu > yg_be Messages postés 23407 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 décembre 2024
21 déc. 2020 à 13:53
non je ne sais pas
0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 21 déc. 2020 à 13:25
Ben oui, ça c'est sur, il faut que tu écrive le code pour cela ...

Une précision: faut-il des nombres entiers ou décimaux comme tu le fais actuellement ?

Tu as compris que x doit être la valeur centrale de ta série de nombres

Donc il faut faire 2 boucles for:

une qui génère une série de N/2 nombres jusqu'à x et une autre qui génère de x à N/2 nombres

Regarde bien les différentes méthodes de la bibliothèque random sur Internet,

il y en a pour faire ça (il n'y a pas que random.random() )
0
Il faut des nombres décimaux

Et j'ai regardé sur internet, ils proposent la fonction "random.uniform"
qui retourne un nombre à virgules dans l'intervalle compris entre a et b

Je vais donc utiliser :
random.uniform(x-a,x+a)

Mais une seule boucle "for" suffit dans ce cas-là non? De 0 à N?
0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
21 déc. 2020 à 14:17
ben oui ...
0