studio repetir rango positivos numeros negativos metodo generar genera como arreglo aleatorios scala

scala - repetir - metodo random java



¿Cómo generar una lista de números aleatorios? (3)

Puedes usar la solución de Don o:

Seq.fill(n)(Random.nextInt)

Tenga en cuenta que no necesita crear un nuevo objeto Random , puede usar el objeto complementario predeterminado Random, como se indicó anteriormente.

Esta podría ser la pregunta de Scala menos importante de la historia, pero me está molestando. ¿Cómo generaría una lista de n número aleatorio? Lo que tengo hasta ahora

def n_rands(n : Int) = { val r = new scala.util.Random 1 to n map { _ => r.nextInt(100) } }

Lo cual funciona, pero no se ve muy Scalarific para mí. Estoy abierto a sugerencias.

EDITAR

No porque sea tan relevante como divertido y obvio en retrospectiva, el siguiente parece que funciona:

1 to 20 map r.nextInt

Pero el índice de cada entrada en la lista devuelta es también el límite superior de esa última. El primer número debe ser menor que 1, el segundo menor que 2, y así sucesivamente. Lo ejecuté tres o cuatro veces y noté "Hmmm, el resultado siempre comienza con 0 ..."


Qué tal si:

import util.Random.nextInt Stream.continually(nextInt(100)).take(10)


con respecto a su EDIT,

nextInt puede tomar un argumento Int como un límite superior para el número aleatorio, entonces 1 to 20 map r.nextInt es lo mismo que 1 to 20 map (i => r.nextInt(i)) , en lugar de un error de compilación más útil .

1 to 20 map (_ => r.nextInt(100)) hace lo que pretendía. Pero es mejor utilizar Seq.fill ya que representa con mayor precisión lo que estás haciendo.