Estoy tratando de hacer un programa para simular el lanzamiento de un dado 500 veces, luego tengo que colocar esos datos en un arreglo, y en otro arreglo colocar los valores que mas salieron.
El problema viene al tratar de calcular los valores que mas salieron, si en lugar de 500 veces, por decir un numero coloco por ejemplo 10 o 20 veces, el programa calcula sin problemas los valores que mas se repiten, pero con 500, el programa no funciona ya que calcula mal las veces que se repite un numero.
Este es el código que estaba realizando:
Código: Seleccionar todo
a=[]
b=[]
max=500
def inicializo(n,max)
vec=[]
for i in 0..max-1
vec[i]=0
end
return vec
end
for i in 0..max-1
a[i]=rand(6)+1
end
puts "Vector: #{a}"
cant=[max]
cant=inicializo(a,max)
for i in 0..a.length-1
for j in 0..a.length-1
if a[i]==j
cant[j]=cant[j]+1
end
end
end
def se_repiten(vec,canti,max)
salida = ""
for i in 0..max-1
if vec[i] == canti
salida = salida + i.to_s + " "
end
end
return salida
end
puts "Los valores que mas salieron fueron: "
for i in 0..max-1
puts "Salio #{i} vez el numero: #{se_repiten(cant,i,max)}"
end
for i in 0..max-1
b[i]=b[i]+cant[i]
end
puts "El Vector con los valores que mas salieron queda: #{b}"
Gracias.