2011-11-23 15 views

Respuesta

75
Random generator = new Random(); 
int i = generator.nextInt(10) + 1; 
+0

Esto genera enteros en el rango [1, 11). –

+23

... que, ahora que me doy cuenta de que estamos hablando de enteros, es el mismo :) –

+0

Bueno, agregar "1" resuelve el problema con seguridad, pero simplemente no puedo entender POR QUÉ este método no maneja dos argumentos - inicio y parada de la gama ?! – thorinkor

13

¿Qué tal:

Random generator = new Random(); 
int i = 10 - generator.nextInt(10); 
+0

Inteligente, pero un poco obtuso. – drdwilcox

+2

+1 1/2 por astucia y -1/2 por obtuso. –

+1

Sí, definitivamente obtuso. Originalmente estaba pensando en números reales, ¡pero al menos funciona para enteros! :) –

5

Sólo añadir uno al resultado. Eso convierte [0, 10) en (0,10] (para enteros). [0, 10) es una forma más confusa de decir [0, 9] y (0,10) es [1,10] (para enteros).

+0

Bueno, agregar "1" resuelve el problema con seguridad, pero simplemente no puedo entender POR QUÉ este método no maneja dos argumentos: ¿inicio y fin del rango? – thorinkor

Cuestiones relacionadas