Coding for KidsCoding for Kids
Niveles CreativosDesafíosGuía del Maestro
Votar por funciones
Curso Avanzado de Desarrollo en Python
Capítulo
>
Nivel

Módulos de Matemáticas
Módulo Aleatorio

Objetivo

Ejecuta simulaciones y pruebas para prepararte ante cualquier error y contratiempo durante la construcción de la granja utilizando el módulo random.

Al cruzar el anexo, hay una oficina que se encarga de algunas tareas administrativas relacionadas con el papeleo respecto al envío, la vivienda y la logística para la construcción. Sería una buena idea ejecutar algunos escenarios usando los datos disponibles para calcular contratiempos y fallos de equipos. Para ayudar con esto, contamos con el módulo random, activado por import random .

El módulo se utiliza para generar salidas aleatorias en diversos grados, permitiéndote ejecutar simulaciones o agregar elementos aleatorios a tus cálculos/ejercicios. Para nuestros propósitos, utilizaremos las siguientes funciones:

  • random.seed(): Establece la semilla para la generación aleatoria, toma un argumento que es el número de semilla que deseas utilizar. Esto significa que cualquier función aleatoria utilizada con una semilla dada devolverá los mismos resultados cuando se use. Se utiliza para ejercer cierto control sobre la generación aleatoria y poder recrear ciertos resultados.
  • random.random(): Retorna un número de punto flotante aleatorio entre 0 y 1.
  • random.randint(): Toma dos(2) argumentos, genera un número entre los dos argumentos, incluyendo los propios números. El resultado se devuelve en números enteros.
  • random.uniform(): Igual que la función anterior, pero retorna un número de punto flotante aleatorio en lugar de un entero.
  • random.triangular(): Igual que la función anterior, pero tiene un argumento extra como modificador llamado mode. El mode debe ser un número entre los dos números del rango aleatorio. El número aleatorio generado será estadísticamente más cercano al mode en lugar de ser un número puramente aleatorio entre los dos primeros argumentos.
  • random.choice(): Toma una lista como argumento, elige un (1) ítem de la lista al azar.
  • random.choices(): Genera una lista aleatoria muestreada de otra lista, toma tres(3) argumentos: una lista de la cual deseas muestrear, otra lista en la que puedes indicar el peso que deseas asignar a cada ítem de la lista que estás muestreando y, finalmente, una variable llamada k a la que puedes asignar un valor que indica cuántas muestras deseas tomar de la lista. El número de muestras puede ser mayor que la lista original, ya que se generarán duplicados en función de los pesos asignados.
  • random.shuffle(): Toma una lista como argumento y la mezcla aleatoriamente.
  • random.sample(): Toma dos argumentos, una lista de la cual muestrear y el número de muestras que deseas tomar. Es una versión simplificada de random.choices() .

Para comenzar, camina hacia la marca X clara y enfréntate al escritorio, usa la función read() para leer el memorando e identificar los puntos de datos necesarios para ejecutar una simulación con algo de variación aleatoria. Vamos a ejecutar una simulación de fallo de equipo, el memorando te informará sobre qué seed usar para la generación aleatoria, así como la lista de la que se muestreará. Utiliza la función random.seed() e inserta el valor proporcionado en el memorando.

Camina hacia la marca X oscura sobre la alfombra azul y enfréntate al escritorio, tenemos una constante lista llamada sectors que contiene las áreas de la granja descritas en el memorando anterior. Crea una variable llamada selection para almacenar el valor de random.choice(), utiliza la constante de lista sectors para obtener una muestra de la lista, de la siguiente manera: selection = random.choice(sectors) . Crea otra variable llamada delay y almacena el valor de random.random() para simular márgenes de error causados por retrasos.

Crea una variable más llamada defect y almacena el valor de random.randint() para generar un porcentaje de fallo potencial del equipo. Añade como argumentos 0 y 15 para generar un porcentaje entre estos dos números. Una vez que las variables: selection, delay y defect hayan sido configuradas, utiliza la función write() predefinida con las tres(3) variables en ese orden, para registrar los puntos de datos que pueden utilizarse para probar posibles problemas en la construcción.

Camina hacia la marca X dorada y utiliza la función read() para continuar con las proyecciones; los datos en el memorando contendrán materiales, cantidades y datos de muestreo. Vamos a ejecutar una simulación más amplia utilizando los datos del memorando, incluyendo una constante lista llamada materials que almacena los tipos de materiales descritos en el memorando.

Camina hacia la marca X oscura sobre la alfombra roja y enfréntate al escritorio. Crea una lista llamada weights y almacena los cuatro(4) valores numéricos presentes en el memorando correspondientes a los materiales en el orden en que se presentan. Por ejemplo: weights = [400, 600 , -insert value-, -insert value-]

Crea una variable llamada simulation y almacena el valor de random.choices(), agrega la constante de lista materials, la lista weights que creaste y una variable llamada k que contiene las unidades de muestreo descritas en el memorando, de la siguiente manera: simulation = random.choices(materials, weights , k = insert sampling units ) . Utiliza la variable simulation con la función write() predefinida para registrar los datos.

Camina hacia la marca X oscura sobre la alfombra verde y enfréntate al escritorio, utiliza la función random.shuffle() con la lista simulation que creaste para mezclarla, de la siguiente manera: random.shuffle(simulation) . Esto mezclará la lista, sin necesidad de almacenar el valor ya que modifica la lista directamente. Crea una lista llamada sample para almacenar el valor de random.sample(), agrega la lista simulation como primer argumento y, para el segundo argumento, toma una muestra de 3 para obtener tres(3) ítems aleatorios como muestra, de la siguiente manera: sample = random.sample(simulation, k=3) . Utiliza simulation y sample con la función write() predefinida para registrar las nuevas muestras.

Finalmente, camina hacia la marca X oscura sobre la alfombra púrpura y enfréntate al escritorio, crea una variable llamada defect y almacena el resultado de random.uniform(), añade los argumentos 3 y 10. Estos son los valores de muestreo para la simulación original y la muestra tomada de ella; los usaremos para generar márgenes potenciales de fallo de equipo a partir de la muestra obtenida.

Crea una variable llamada losses y almacena el valor de random.triangular(), añade los valores 200, 600 y 400. Estos son los números de materiales descritos en el memorando anterior, específicamente el más bajo, el más alto y el valor más cercano al medio. Esto nos permite obtener un valor aleatorio triangular basado en la cantidad de materiales que usó la simulación. Utiliza los valores defect y losses con la función write() predefinida para obtener resultados y completar el nivel.

Libro de Código