Thema: Delphi "mischen"

Einzelnen Beitrag anzeigen

ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#3

Re: "mischen"

  Alt 22. Nov 2005, 17:17
garantiert nicht. probiers aus.

ich würde das so machen:

ich hab zuerst ein Array (oder eine Liste) mit sortierten Elementen, und dann hänge ich an ein 2. Array nacheinander zufällig die Elemente des 1. Arrays an.

gerade hab ich deine Möglichkeit getestet:
Delphi-Quellcode:
var
  a:array[1..18] of integer;
  tmp:integer;
  i,j,element:integer;
  elements:array[1..18,1..18] of integer;
const
  count=1000000;
begin
  label1.Caption:='';
  for i:=1 to 18 do
    for j:=1 to 18 do
      elements[i,j]:=0;
  for j:=1 to count do begin
    for i:=1 to 18 do
      a[i]:=i;
    randomize;
    for i:=1 to 18 do begin
      tmp:=a[i];
      if i<>18 then
        element:=random(18-i)+i
      else
        element:=random(18)+1;
      a[i]:=a[element];
      a[element]:=tmp;
    end;
    for i:=1 to 18 do
      elements[i,a[i]]:=elements[i,a[i]]+1;
  end;
  for i:=1 to 18 do
  begin
    for j:=1 to 18 do
      label1.Caption:=label1.Caption+inttostr(elements[i,j])+' | ';
    label1.Caption:=label1.Caption+#13;
  end;
end;
tatsächlich ist jede Zahl ungefähr gleich häufig an jeder Stelle im Array enthalten.

Code:
|52|51|56|47|63|53|56|57|55|58|57|54|53|62|55|57|54|60|
|57|55|52|56|51|60|58|49|54|52|59|55|62|42|66|54|58|60|
|66|56|56|52|57|49|62|48|68|51|66|38|70|39|57|55|58|52|
|55|65|75|60|46|49|53|60|47|52|55|60|47|61|57|46|50|62|
|55|41|54|56|58|52|54|59|60|56|59|54|51|63|52|63|60|53|
|51|57|58|67|55|53|62|55|51|61|56|56|52|49|52|45|61|59|
|58|59|48|64|54|51|43|58|70|47|54|54|63|60|55|50|58|54|
|48|55|56|64|60|62|63|59|70|61|31|57|63|66|54|35|45|51|
|66|54|47|49|57|43|83|44|53|63|51|57|56|61|48|60|52|56|
|53|60|78|66|51|55|57|65|56|44|50|54|57|52|45|47|57|53|
|52|52|48|49|50|66|51|48|59|46|61|59|67|57|61|57|63|54|
|58|66|58|48|50|53|52|58|49|58|50|58|44|56|74|62|54|52|
|52|63|51|52|61|61|51|52|47|51|61|70|50|54|62|56|51|55|
|48|50|49|64|56|48|53|49|51|69|62|63|56|67|49|62|43|61|
|57|60|57|50|61|64|55|66|44|53|57|49|43|47|59|74|52|52|
|56|45|46|49|62|70|52|62|52|61|62|51|42|59|56|53|69|53|
|54|59|53|53|59|55|49|61|64|55|52|62|61|51|43|70|42|57|
|62|52|58|54|49|56|46|50|50|62|57|49|63|54|55|54|73|56|
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat