Kênh Tên Miền chuyên cung cấp tên miền đẹp, giá rẻ! Hãy liên hệ kỹ thuật: 0914205579 - Kinh doanh: 0912191357 để được tư vấn, hướng dẫn miễn phí, Cảm ơn quý khách đã ủng hộ trong thời gian qua!
Wednesday, December 25, 2013



Sinh hoán vị ngẫu nhiên
               Sinh ngẫu nhiên cho mảng nguyên a một hoán vị của 1..n.
Gia sư tin học, Đặc tả
Xuất phát từ hoán vị đơn vị a = (1, 2,..., n) ta đổi chỗ a[1] với một phần tử tuỳ ý (được chọn ngẫu nhiên) a[j] sẽ được một hoán vị.  Ta có thể thực hiện việc đổi chỗ nhiều lần.
(* Pascal  *)
(*-----------------------------------------
    Sinh ngau nhien cho mang nguyen a
    mot hoan vi cua 1..n
------------------------------------------*)
program GenPer;
const MN = 1000; { so luong toi da }
            Esc = #27; { dau thoat }
            BL = #32; { dau cach }
var a: array[1..MN] of integer;
(*-----------------------
      Sinh du lieu
-----------------------*)
procedure Gen(n: integer);
var i,j,x:  integer;
begin
       { Khoi tao hoan vi don vi }
       for i:= 1 to n do a[i]:= i;
       for i:= 1 to n do
 begin
   j := random(n)+1;
   x := a[1]; a[1] := a[j]; a[j] := x;
 end;
end;
procedure Xem(n: integer); tự viết
procedure Test;
var n: integer;
begin
randomize;
        repeat {chon ngau nhien kich thuoc n = 10..39}
   n := random(30)+10; Gen(n); Xem(n);
        until ReadKey = Esc; { Nhan ESC de thoat }
end;
BEGIN
  Test;
END.

0 comments:

Post a Comment

Popular Posts