Matriz com nº randonicos

6 respostas
S

Pessoal,

escrevi a seguinte classe

ela é uma classe abstrata e existe um sub-classe que cria instancias dessa super-classe.

Meu problema é que todas as instancias criadas estão sendo preenchidas com os mesmos valores de horarios.

Sei que o caminho para a solução seria utilizar o mesmo random para todas as instancias, mas não sei como fazer isso.

Luiz Henrique

6 Respostas

dudaskank

todos com os mesmos números? estranho, achei que quando desse new Random() iria mudar a semente. Bom até deve ser isso mas acho que sua criação de classe é tão rápida que pega todos a mesma semente.

Bem, um jeito de se fazer é deixar o Random como um objeto static, ou seja, compartilhado por todas as instâncias da classe, e só der new Random() se ele estiver nulo… ou fazer direto:

// gera um numero aleatorio private static Random rand = new Random();

flw

akumaldo

dudaskank:
todos com os mesmos números? estranho, achei que quando desse new Random() iria mudar a semente. Bom até deve ser isso mas acho que sua criação de classe é tão rápida que pega todos a mesma semente.

Bem, um jeito de se fazer é deixar o Random como um objeto static, ou seja, compartilhado por todas as instâncias da classe, e só der new Random() se ele estiver nulo… ou fazer direto:

// gera um numero aleatorio private static Random rand = new Random();

flw

Espera ai…creio que muda a semente não muda??? por que a classe pega a seed diferente a cada vez que criamos uma variável diferente!:expressionless: estranhoooo!
bom…mas a solução de tornar estático o metodo vai resolver seus problemas… :slight_smile:

S

Tambem acreditava que tornando a variavel estatica resolveria o problema, mas não resolveu…

A classe cria 6 instancias seguidas e todas elas estão sendo preenchidas com os mesmos valores. Como são criadas rapidamente o seed é mesmo para todas elas.

Uma alternativa seria colocar um tempo entre a criação das instancias mas não seria o mais inteligente.

Gostaria de saber o que estou fazendo de errado aqui…

diego2005

Cara, vc ta fazendo o Problema de Geração de Horários???

Não sei se é assim que você chama, tem algumas variações:

Problema de Alocação de Salas (PAS)

Timetabling

é isso que você ta fazendo??

S

É algo do genero porem mais simples.

De qualquer forma, sabe me ajudar com esse problema dos numeros randonicos estarem sendo definidos iguais?

peczenyj

http://www.cs.geneseo.edu/~baldwin/reference/random.html

Vc gera 7% de 1 e o resto de 0, conforme vc definiu. Para gerar um ‘set’ diferente de numeros aleatórios altere a semente do seu gerador :wink:

Criado 27 de julho de 2006
Ultima resposta 27 de jul. de 2006
Respostas 6
Participantes 5