En este artículo, la tarea es escribir un programa en Python para generar un lanzamiento de dados imparcial y generar resultados en consecuencia. Para hacerlo, podemos usar varios métodos presentes en la biblioteca aleatoria de Python.
Enfoques:
- Usando el método random.choice()
- Usando el método random.randrange()
- Usando el método random.randint()
- Usando el método random.random()
- Usando el método random.choices()
Método 1: Usar random.choice()
Choice() es una función incorporada en el lenguaje de programación Python que devuelve un elemento aleatorio de una lista, tupla o string. Este método está diseñado con el propósito específico de obtener un número aleatorio del contenedor y, por lo tanto, es el método más común para lograr esta tarea de obtener un número aleatorio de una lista.
Sintaxis: random.choice(secuencia)
Parámetros:
- La secuencia es un parámetro obligatorio que puede ser una lista, una tupla o una string.
Devoluciones: la opción() devuelve un elemento aleatorio.
Ahora, como sabemos que dados tiene números del rango 1-6 inclusive y queremos un resultado sesgado como resultado, daremos [1, 1, 1, 2, 3, 3, 4, 5, 6, 6, 6 , 6] ya que la secuencia en la función y la función darán como resultado un lanzamiento de dados sesgado porque la frecuencia de los números no es la misma. A continuación se muestran las implementaciones basadas en la explicación anterior:
Python3
# Python program to design a biased dice throw # function # Importing random library import random # Function to give a biased dice throw def dice_throw(): # Declaring the sequence sequence = [1, 1, 1, 2, 3, 3, 4, 5, 6, 6, 6, 6] # Printing the random result print(random.choice(sequence)) # Driver Code # Calling the function dice_throw() # Calling the function dice_throw() # Calling the function dice_throw()
Producción:
6 3 6
Método 2: Usando random.randrange()
Este método se usa para generar un número aleatorio en un rango, para las listas, podemos especificar que el rango sea 0 en su longitud, obtener el índice y luego el valor correspondiente. Esto también da la opción de obtener incluso elementos colocados o elementos en el índice de un determinado múltiplo.
Sintaxis: random.randrange(start(opt), stop,step(opt))
Parámetros:
- start(opt) : la consideración del número para la generación comienza a partir de esto, el valor predeterminado es 0. Este parámetro es opcional.
- stop : Se generan números menores que este. Este parámetro es obligatorio.
- step(opt) : Punto de paso del rango, esto no se incluirá. Esto es opcional. El valor predeterminado es 1.
Valor de retorno: esta función generó los números en el paso de salto de secuencia de inicio y parada.
Ahora, como sabemos que dados tiene números del rango 1-6 inclusive, y queremos un resultado sesgado como resultado, daremos [1, 1, 1, 2, 3, 3, 4, 5, 6, 6 , 6, 6] como la secuencia en la función y luego use randrange para encontrar un índice aleatorio y, por lo tanto, la función dará como salida un lanzamiento de dados sesgado. A continuación se muestran las implementaciones basadas en la explicación anterior:
Python3
# Python program to design a biased dice throw # function # Importing random library import random # Function to give a biased dice throw def dice_throw(): # Declaring the sequence sequence = [1, 1, 1, 2, 3, 3, 4, 5, 6, 6, 6, 6] # using random.randrange() to # get a random index number rand_idx = random.randrange(len(sequence)) # Printing the random result print(sequence[rand_idx]) # Driver Code # Calling the function dice_throw() # Calling the function dice_throw() # Calling the function dice_throw()
Producción:
6 3 3
Método 3: Usar random.randint()
Otro método más para generar el número aleatorio, también se puede usar para generar cualquier número en un rango, y luego usando ese índice numérico, podemos encontrar el valor en el índice correspondiente, al igual que la técnica mencionada anteriormente. Pero se diferencia por el hecho de que requiere 2 argumentos obligatorios para el rango.
Sintaxis: randint (inicio, final)
Parámetros:
- (inicio, fin): ambos deben ser valores de tipo entero.
Devuelve: un número entero aleatorio en el rango [inicio, fin] incluidos los puntos finales.
Ahora, como sabemos que dados tiene números del rango 1-6 inclusive, y queremos un resultado sesgado como resultado, daremos [1, 1, 1, 2, 3, 3, 4, 5, 6, 6 , 6, 6] como la secuencia en la función y luego use randint para encontrar un índice aleatorio y, por lo tanto, la función dará como salida un lanzamiento de dados sesgado. A continuación se muestran las implementaciones basadas en la explicación anterior:
Python3
# Python program to design a biased dice throw # function # Importing random library import random # Function to give a biased dice throw def dice_throw(): # Declaring the sequence sequence = [1, 1, 1, 2, 3, 3, 4, 5, 6, 6, 6, 6] # using random.randint() to # get a random index number rand_idx = random.randint(0, len(sequence)-1) # Printing the random result print(sequence[rand_idx]) # Driver Code # Calling the function dice_throw() # Calling the function dice_throw() # Calling the function dice_throw()
Producción:
5 2 4
Método 4: Usar random.random()
Este método genera los números de coma flotante en el rango de 0 a 1. También podemos obtener el valor del índice de la lista usando esta función multiplicando el resultado y luego encasillándolo a int para obtener el índice entero y luego el valor de la lista correspondiente. Luego usaremos ese valor de índice para imprimir un número aleatorio de la lista.
Sintaxis: random.random()
Parámetros: este método no acepta ningún parámetro.
Devoluciones: este método devuelve un número flotante aleatorio entre 0 y 1.
Ahora, como sabemos que dados tiene números del rango 1-6 inclusive, y queremos un resultado sesgado como resultado, daremos [1, 1, 1, 2, 3, 3, 4, 5, 6, 6 , 6, 6] como la secuencia en la función y luego use aleatorio para encontrar un índice aleatorio y, por lo tanto, la función dará como salida un lanzamiento de dados sesgado. A continuación se muestran las implementaciones basadas en la explicación anterior:
Python3
# Python program to design a biased dice throw # function # Importing random library import random # Function to give a biased dice throw def dice_throw(): # Declaring the sequence sequence = [1, 1, 1, 2, 3, 3, 4, 5, 6, 6, 6, 6] # using random.random() to # get a random number rand_idx = int(random.random() * len(sequence)) # Printing the random result print(sequence[rand_idx]) # Driver Code # Calling the function dice_throw() # Calling the function dice_throw() # Calling the function dice_throw()
Producción:
6 2 6
Método 5: Usando random.choices()
El método choice() devuelve múltiples elementos aleatorios de la lista con reemplazo. Puede sopesar la posibilidad de cada resultado con el parámetro de pesos o el parámetro cum_weights. Los elementos pueden ser una string, un rango, una lista, una tupla o cualquier otro tipo de secuencia.
Sintaxis: random.choices(secuencia, pesos=Ninguno, cum_weights=Ninguno, k=1)
Parámetros:
- secuencia: Es un parámetro obligatorio que puede ser una lista, tupla o string.
- pesos: Es un parámetro opcional que se utiliza para sopesar la posibilidad de cada valor.
- cum_weights: Es un parámetro opcional el cual se utiliza para ponderar la posibilidad de cada valor pero en este se acumula la posibilidad
- k: es un parámetro opcional que se utiliza para definir la longitud de la lista devuelta.
Ahora, como sabemos que los dados tienen números del 1 al 6 inclusive, daremos [1, 2, 3, 4, 5, 6] como una secuencia, y luego estableceremos los pesos de cada elemento de la lista. . Luego imprimiremos la salida. A continuación se muestran las implementaciones basadas en la explicación anterior:
Python3
# Python program to design a biased dice throw # function # Importing random library import random # Function to give a biased dice throw def dice_throw(): # Declaring the sequence sequence = [1, 2, 3, 4, 5, 6] # using random.choices() to # get a random choice rand_choice = random.choices(sequence, weights = [1, 2, 3, 4, 5, 6], k = 1) # Printing the random result print(*rand_choice) # Driver Code # Calling the function dice_throw()1 6 3 # Calling the function dice_throw() # Calling the function dice_throw()
Producción:
1 6 3
Publicación traducida automáticamente
Artículo escrito por aditya_taparia y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA