Reporte de estadísticas de números en Mojo
Una muestra sembrada pasada por mínimo, máximo, media y dispersión.
from std.random import random_float64, seed
def smallest(values: List[Float64]) -> Float64:
var best = values[0]
for value in values:
if value < best:
best = value
return best
def largest(values: List[Float64]) -> Float64:
var best = values[0]
for value in values:
if value > best:
best = value
return best
def mean(values: List[Float64]) -> Float64:
var total = 0.0
for value in values:
total += value
return total / Float64(len(values))
def main():
# A fixed seed keeps the report reproducible.
seed(17)
var readings = List[Float64]()
for _ in range(12):
readings.append(random_float64(0.0, 100.0))
var low = smallest(readings)
var high = largest(readings)
print("readings:", len(readings))
print("min: ", low)
print("max: ", high)
print("mean: ", mean(readings))
print("spread: ", high - low)
Cómo funciona
seed(17)fija el generador para que el reporte se repita exacto.- Doce tiradas de
random_float64llenan unList[Float64]. smallest,largestymeanpliegan cada uno la lista en un solo número.mainimprime el resumen como un pequeño reporte alineado.
Palabras clave y builtins usados aquí
Float64Listdefforiflenprintrangereturnvar
El intento, en números
- Líneas
- 36
- Caracteres a escribir
- 812
- Tokens
- 205
- Ritmo de tres estrellas
- 75 tpm
Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 164 segundos.
Paso 1 de 1 en Bis; paso 26 de 26 en Fundamentos del lenguaje.