¿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
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.