I am trying to do it this way:
$var = 0 #This stay inside a JSON Object
newVar = []
n.times do |i|
newVar.push(randomize($var))
end
def randomize(thisVar)
thisVar = Random.new.rand(0 .. 100)
return thisVar
end
But I always end up with the same value on all vars inside the array newVar[]
I've tried the.dup and .clone to not give the same value to all fields. But it's not working.
Real Code:
# IdeenAG: Operacoes Geneticas
def novaPopulacao ()
puts "\n\nIdeenAG: Criando Populacao ("+$parametros['populacaoInicial']+")\n"
tempVar = []
populacaoCriada = []
xtimes = $parametros['populacaoInicial'].to_i
xtimes.times do |i|
populacaoCriada.push(mutar($variaveis.clone))
end
puts populacaoCriada.to_s+"\n"
return populacaoCriada
end
def mutar (varArray)
varArray.each_with_index do |variavel,index|
puts "IdeenAG: Mutando População ("+variavel['nome']+")\n"
variavel['valor'] = Random.new.rand(variavel['minimo'].to_i .. variavel['maximo'].to_i)
end
return varArray
end
Real Result (With 3 Vars)
[[
{"nome"=>"var0", "minimo"=>"1", "maximo"=>"99999", "valor"=>70356},
{"nome"=>"var1", "minimo"=>"1", "maximo"=>"99999", "valor"=>55356},
{"nome"=>"var2", "minimo"=>"1", "maximo"=>"99999", "valor"=>65904}
],
[
{"nome"=>"var0", "minimo"=>"1", "maximo"=>"99999", "valor"=>70356},
{"nome"=>"var1", "minimo"=>"1", "maximo"=>"99999", "valor"=>55356},
{"nome"=>"var2", "minimo"=>"1", "maximo"=>"99999", "valor"=>65904}
],
[
{"nome"=>"var0", "minimo"=>"1", "maximo"=>"99999", "valor"=>70356},
{"nome"=>"var1", "minimo"=>"1", "maximo"=>"99999", "valor"=>55356},
{"nome"=>"var2", "minimo"=>"1", "maximo"=>"99999", "valor"=>65904}
],
[
{"nome"=>"var0", "minimo"=>"1", "maximo"=>"99999", "valor"=>70356},
{"nome"=>"var1", "minimo"=>"1", "maximo"=>"99999", "valor"=>55356},
{"nome"=>"var2", "minimo"=>"1", "maximo"=>"99999", "valor"=>65904}
],
[
{"nome"=>"var0", "minimo"=>"1", "maximo"=>"99999", "valor"=>70356},
{"nome"=>"var1", "minimo"=>"1", "maximo"=>"99999", "valor"=>55356},
{"nome"=>"var2", "minimo"=>"1", "maximo"=>"99999", "valor"=>65904}
]]
See the field "valor", it is always the same value! I need to randomize it.