es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Función de entero aleatorio de bucle de Python

Estoy tratando de crear un ciclo que tome un valor de entrada y genere esa cantidad de números aleatorios entre 0 y 10, y luego pase estos valores por una fórmula en un ciclo y guarde estos valores en un arreglo. Esto es lo que he hecho:

def f(x):
x**2

def Sample(npts):
sample = []

randomlist = random.sample(range(0.0, 10.0), npts)


for i in range(randomlist):
    y  = f(randomlist)
    sample.append(y)

print(sample)

Ahora aquí estoy obteniendo un error que indica que se ha excedido el rango de muestra. Esto ocurre cuando establezco npts = 100, ¿alguien puede explicarme dónde estoy equivocado? Además, temo haber llamado al valor equivocado más adelante. Para explicar, estoy tratando de obtener 100 valores aleatorios (npts, en este caso) entre 0 y 10, y que estos valores sean los valores x que se pasan por f(x) (en este caso, los valores se multiplican por 2) y luego tener estos nuevos valores calculados guardados en el arreglo muestra cada vez y luego imprimirlos al final.

Espero que esto aclare lo que estoy tratando de hacer, así que por favor, avíseme cómo corregir el error.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    ¡Parece que estás casi allí! El problema es que estás tratando de iterar sobre la variable randomlist, que es una lista de números, en lugar del rango de números. Puedes solucionarlo cambiando el ciclo for por lo siguiente:

    for i in range(len(randomlist)):
        y  = f(randomlist[i])
        sample.append(y)
    

    Esto iterará sobre cada número en el randomlist y aplicará la función f(x) a él, y luego agregará el resultado a la lista sample.

Comments are closed.