¿Cómo puedo producir un número aleatorio en un rango de 1 millón a 10 millones?generar un número aleatorio con 7 dígitos
rand (10) funciona, probé rand (1..10) y eso no funcionó.
¿Cómo puedo producir un número aleatorio en un rango de 1 millón a 10 millones?generar un número aleatorio con 7 dígitos
rand (10) funciona, probé rand (1..10) y eso no funcionó.
Tome su número de base, 1.000.000 y añada un número aleatorio entre 0 y hasta su máximo - Número de partida:
1_000_000 + Random.rand(10_000_000 - 1_000_000) #=> 3084592
Esto generará un número aleatorio entre 1,000,000 y 9,999,999.
rand(10_000_000-1_000_000)+1_000_000
Esto funciona en 1.8.7 sin ningún gems (backports, etc.).
Otra opción con el rubí 1.8.7 Compatibilidad:
rand (9999999999) .to_s.center (10, rand (9) .to_s) .to_i
O, en caso de actuación no es un problema y que no desea contar ceros:
(0...7).map { |i| rand((i == 0 ? 1 : 0)..9) }.join.to_i
Necesitaba una forma de evitar ceros –
Estoy usando ruby 1.8.7, Parece aleatorio 'no existe. es una gema? – Blankman
@Blankman: ¿Intentó 'require 'random'', y también comprobando si solo es 1.9.2? –
1.8.7 no tiene Aleatorio. Está en 1.9.2+. Instale la gema de backports y la heredará en 1.8.7, junto con muchas otras bondades jugosas. –