Numeros aleatorios no repetidos en Ruby.

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: maiku, akodo

Responder
ExpLin_11
Forista Nuevo
Forista Nuevo
Mensajes: 35
Registrado: Dom Nov 13, 2011 10:28 pm

Numeros aleatorios no repetidos en Ruby.

Mensaje por ExpLin_11 »

Hola a todos.

Estoy haciendo un programa, y en una parte necesito cargar 100 números aleatorios no repetidos comprendidos entre 0 y 99. Use un código que tenia, que aunque en este caso era para cargar un vector manualmente, lo modifique para que en lugar de cargar los números 1 por 1 se los asigne aleatoriamente. el problema es que haciéndolo de este modo el vector generado queda con números repetidos, y realmente no se me ocurre que es lo que pasa.

Aca esta el codigo:

Código: Seleccionar todo

srand
a=[]
i=0

begin
	num=rand(100) # Esta es la parte que modifique. 
	
	if i==1 then
		a[i]=num
		enc=false
	else
		j=1
		enc=false
		begin
			if a[j]==num
				enc=true
			end
			j=j+1
		end until j>1
	end
	if enc==false then
		a[i]=num
		i=i+1
	end
end until i>99

puts a
En que me estoy equivocando?.

Gracias.

Snark1994
Forista Menor
Forista Menor
Mensajes: 76
Registrado: Sab Abr 02, 2011 11:43 pm

Re: Numeros aleatorios no repetidos en Ruby.

Mensaje por Snark1994 »

Cuando dices

Código: Seleccionar todo

end until j>1
el bucle terminará después de solo una repetición. Piensas de decir

Código: Seleccionar todo

end until j>i
, pienso.

De todas modas, sería más sencillo si hagas:

Código: Seleccionar todo

#!/usr/bin/env ruby

a=[]

begin
    begin
        num = rand(100)
    end while a.include?(num)
    a.push(num)
end while a.size < 100
No soy hispanohablante - si he cometido un error con mi español, dime por favor :) me gustaría mejorarlo

Responder
  • Temas similares
    Respuestas
    Vistas
    Último mensaje