Random

Delphi

22/12/2004

eu não sei c vcs já perceberam...
mas a função Random do Delphi, não é nada randomica!

fassa um teste com um botao e um edit!
no onClick do botao manda ele passa o ´Edit1.Text := IntToStr(Random(7))´ , por exemplo.

usei o 7 pq esatava simulando um dado e reparei q sempre os resultados são os mesmos! no caso do sete são, em ordem: 0, 0, 6, 1, 1, 4, 2, 1, 2 ...

fassam o teste ... gosteria d saber c ter como arrumar isso ou c existe algum função q realmente fassa um sorteio randômico!

[]´s Secoo

=DDDDDDDD


Seccomiro

Seccomiro

Curtidas 1

Melhor post

Marcelo Saviski

Marcelo Saviski

28/12/2004

só é preciso chamar o Randomize 1 vez, pode colocar o Randomize no OnCreate do Form.

ou senão, vc pode mudar o valor da variável RandSeed;

se colocar RandSeed := 5; ao inicializar por exemplo, ele vai dar sempre a mesma sequencia, mas diferente se vc colocar outro valor no RandSeed;


GOSTEI 1

Mais Respostas

Gandalf.nho

Gandalf.nho

22/12/2004

Use a função Randomize antes de usar Random.


GOSTEI 0
Marcosrocha

Marcosrocha

22/12/2004

Olá, eu confirmei seu teste, os números aparecem sempre na ordem que vc disse.
Montei esse código e cada vez que eu abro o programa a ´randomização´ é diferente!!!
Faça alguns testes para ver se isso serve!! Mas eu reparei que aparecem muitos 0 no evento do botão 1 para randomizar...
Do mais o código está aí!!!
procedure TForm1.Button1Click(Sender: TObject);
begin
  Randomize;
  Edit1.Text := IntToStr(Random(7));
end;



GOSTEI 0
Titanius

Titanius

22/12/2004

realmente constatei este problema... a probabilidade de aparecer algum numero repetido eh muito grande, nao vale a pena utilizar o random, se queres algo realmente randomico...

alguem teria alguma funcao para randomicos?


[]s


GOSTEI 0
Gandalf.nho

Gandalf.nho

22/12/2004

No Delphi tem uma unit com outras funções randômicas, dê uma olhada


GOSTEI 0
POSTAR