블로그 이미지
훅크선장

카테고리

분류 전체보기 (362)
사진이야기 (23)
펭귄컴퓨팅 (121)
컴퓨터보안 (84)
절름발이 프로그래머 (59)
하드웨어개조 (23)
멀알려줄까 (35)
홈베이킹&홈쿠킹 (2)
잡다한것들 (15)
Total
Today
Yesterday

달력

« » 2024.12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

공지사항

태그목록

최근에 올라온 글

특정 일련 숫자들로부터 임의 순열(즉, 무작위로 뒤섞인 일련의 숫자들)을 만드는 방법입니다.

다음의 예제는 1부터 100까지의 숫자가 일련되어 저장된 배열에서, 순서가 무작위로 뒤바뀐 배열을 만들어냅니다.
SizeofArr 을 바꿔서, 다양한 일련의 숫자를 뒤섞을 수 있습니다.

procedure TForm1.btn2Click(Sender: TObject);
var
  RandomPermutationArray : array of Integer;
  I, J, SizeofArr, RandomPosition, Temp : Integer;
  PrintStr : String;
begin
  SizeofArr := 100;
  SetLength(RandomPermutationArray, SizeofArr + 1); // We need one more space, because number starts 1.

  // array init
  for I := 1 to SizeofArr do
    RandomPermutationArray[I] := I;

  // randoomize Permutation
  for J := 1 to  SizeofArr - 1 do
  begin
    RandomPosition := J + Random(SizeofArr - J) + 1;
    Temp := RandomPermutationArray[J];
    RandomPermutationArray[J] := RandomPermutationArray[RandomPosition];
    RandomPermutationArray[RandomPosition] := Temp
  end;

  PrintStr := '';
  for I := 1 to SizeofArr do
  begin
    PrintStr := PrintStr + ' ' + IntToStr(RandomPermutationArray[I]);
  end;
  edt3.Text := PrintStr;
end;

Posted by 훅크선장
, |