Ver Mensaje Individual
  #3  
Antiguo 06-03-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
¿Como haces para generar esta secuencia (32-13-29-16-31) en delphi? ¿que semilla? ¿que valor le pasas a la función random? Porque yo no puedo conseguir la misma secuencia con un valor de semilla de 29.

Código Delphi [-]
var
  i: integer;
  Str: string;
begin
  Str:= '';
  RandSeed:= 29;
  for i:= 1 to 5 do
  begin
     Str:= Str + IntToStr(Random(x)) + ' / ';
  end;
  ShowMessage(Str);
end;

Ningún valor de x entre 1 y 1000 me genera la secuencia que tu indicas en tu mensaje.

En cuanto a simular la funcion Rnd de Visual Basic, lo podriamos intentar de la siguiente manera:
Código Delphi [-]
var
  // Variable global
  Semilla: Cardinal;

function VBRnd: Single;
begin
  Semilla:= (Semilla *  $43fd43fd + $c39ec3) and $ffffff;
  Result:= Semilla / 16777216.0;
end;

Tal como indican en la pagina de microsoft:
http://support.microsoft.com/kb/231847

El problema es inicializar el valor de la semilla, ya que Randomize utiliza un método bastante complejo, así que si me puedes pasar varias secuencias (los números decimales no los enteros) y los parámetros que le pasaste al Randomize para generar cada una de ellas, me seria muy útil para comprobar mi traducción de la función Randomize.
Responder Con Cita