1
votes

Comment choisir au hasard entre deux valeurs?

Donc, en gros, j'essaie d'obtenir un morceau de code pour choisir au hasard entre deux valeurs -40 et 40.

Pour ce faire, je pensais utiliser de bonnes vieilles mathématiques comme -

random_num = ((-1) ^ valeur) * 40, où valeur = {1, 2}.

random_num, comme son nom l'indique, doit être un nombre aléatoire.

Avez-vous de l'aide?

J'utilise python, une solution utilisant des bibliothèques est acceptable.


10 commentaires

Donc np.random.randint (-40,40, taille) ?


import random random.randint (-40,40) avez-vous déjà essayé cela?


Je vais essayer thx (désolé si la réponse est facile pour vous mais je ne suis pas du tout familier avec python)


Les «réponses» de @yatu et de Justice_Lords ne sont pas correctes. Op veut avoir soit -40 ou 40, pas un nombre aléatoire entre -40 et 40.


Votre question est-elle «comment obtenir une valeur aléatoire entre -40 et 40», «comment obtenir une valeur aléatoire de -40 ou 40» ou «comment obtenir une valeur aléatoire de 1 ou 2»?


Vous voulez des valeurs dans intervalle -40 à 40 ou choisir -40 ou 40?


@Guybrush "choisir entre les valeurs -40 et 40" ......


@yatu me semble ambigu


puis juste np.random.choice ([- 40,40])


Pourquoi tant de programmeurs ajoutent-ils la surcharge NumPy alors que la bibliothèque standard fournit une solution parfaite?


4 Réponses :


1
votes

C'est simple en Python:

Python 3.7.3 (default, Mar 27 2019, 13:36:35) 
[GCC 9.0.1 20190227 (Red Hat 9.0.1-0.8)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from random import choice
>>> choice((-40, 40))
40
>>>


0 commentaires

3
votes

En supposant que L est une liste de valeurs parmi lesquelles vous voulez choisir, alors random.choice (L) fera le travail.

Dans votre cas:

import random
L = [-40, 40]
print(random.choice(L))


0 commentaires

1
votes

Vous pouvez utiliser la fonction choix en python pour y parvenir. Si vous voulez que les valeurs choisies soient seulement -40 ou 40, le deuxième argument est la probabilité / poids.

from random import choices
choices([-40,40], [0.5,0.5])


4 commentaires

OP veut soit -40 ou 40, pas une valeur entre -40 et 40.


@Guybrush a mis à jour ma réponse. Cela devrait être bien


Je ne pense pas que choix devrait être préféré à choix ici, car le premier renvoie une liste d'éléments sélectionnés (même s'il n'y a qu'un seul élément). Cela signifie que OP devra faire x = choix (...) [0] x = choix (...) est suffisant, plus simple et plus lisible; -)


D'accord @Guybrush!



9
votes

Si vous voulez un nombre entier aléatoire entre -40 et +40, alors

 import random
 random.choice([-40, 40])

https://docs.python.org/3.1/library/random.html#random.randint

Si vous voulez choisir l'un ou l'autre -40 ou +40, puis

import random
random.randint(-40, 40)

https://docs.python.org/3/library/random.html#random.choice

Si vous préférez vraiment aller avec votre implémentation en choisissant l'un ou l'autre 1 ou 2, comme dans votre question, puis insérez ces valeurs dans la méthode random.choice.

A fourni les solutions ci-dessus, car je pense qu'il y a une certaine ambiguïté dans la question.


0 commentaires