Buenos dias, sigo haciendo pruebas y alguna modificacion para la version de Windows, como generar un listView con x numero de combinaciones aleatorias y buscar los 6 mas repetidos para tomarlos como clave maestra (supongo que se me puede aplicar eso de R que R pero es lo que buscaba de un principio). En Windows va todo bien (excepto lo de atender al combobox, no lo he comprobado), hace lo que debe. Pero en Linux, me encuentro que cuando selecciono un valor del combobox por ejemplo 5000, en el listBox, solo aparecen 2885 y no sé por qué no antiende al case que por cierto es proporcional al valor del combo, es decir si selecciono 50.000 combinaciones, solo hace los calculos sobre 28684.
Código Delphi
[-]...
...
case comb.ItemIndex of
0: begin
listBox1.Clear;
listBox1.clear;
setLength(list, 5000);
for i:=0 to high(list) do
list[i].aleatorio2;
if not Combinacion1.load([1, 45, 33, 14, 20, 22]) then begin
MessageDlg('La combinacion no es valida!!!', mtError, [mbOK], 0);
exit;
end;
cs1 := '23 45 17 15 22 36'; for i := 0 to high(list) do begin
comunes := list[i].comparar(Combinacion1);
if comunes <> 0 then
listBox1.Items.Add(IntToStr(listBox1.Items.Count)+#9+'Maestra: '+cs1 + #9 + 'Aleatoria: '+list[i].AsString + #9 + '(' + IntToStr(comunes.count) + ') ' + comunes.AsString);
if comunes = 5 then
with lista.Items.Add do
begin
caption:= IntToStr(lista.items.count);
subItems.Add(cs1);
subItems.Add(list[i].AsString);
subItems.Add(IntToStr(comunes.count));
end;
end;
inc (int);
end;
Y por otra parte, veo que en cs1, juega con una combinacion arbitraria:
Código Delphi
[-]cs1 := '23 45 17 15 22 36';
¿Como podría hacer lo mismo que en Windows, es decir generar x numero de combinaciones aleatorias y buscar los 6 mas repetidos para proporcionarle este dato a cs1?
Un saludo