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.
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 delrango
de números. Puedes solucionarlo cambiando el ciclofor
por lo siguiente:Esto iterará sobre cada número en el
randomlist
y aplicará la funciónf(x)
a él, y luego agregará el resultado a la listasample
.