Thứ Tư, 25 tháng 12, 2013

Sinh ngẫu nhiên tăng



Sinh ngẫu nhiên tăng, gia sư tin học.
               Sinh ngẫu nhiên n phần tử được sắp không giảm cho mảng nguyên a.
Thuật toán
1. Sinh ngẫu nhiên phần tử đầu tiên: a[1] :=  random(n);
2. Từ phần tử thứ hai trở đi, trị được sinh bằng trị của phần tử sát trước nó cộng thêm một đại lượng ngẫu nhiên:
(i = 2..n): a[i] :=  a[i - 1] + random(n), do đó a[i]  >=  a[i - 1].
(*  Pascal  *)
(*-------------------------------------------
      Sinh ngau nhien cho mang nguyen a
      n phan tu sap khong giam
-------------------------------------------*)
program IncGen;
uses crt;
const MN = 1000;
var a: array [1..MN] of integer;
(*----------------------------------------
  Sinh ngau nhien day tang gom n phan tu
-----------------------------------------*)
procedure Gen(n: integer);
var i: integer;
begin
randomize;
a[1]:= random(5); {khoi tao phan tu dau tien }
for i:= 2 to n do a[i]:= a[i-1]+random(10);
end;
procedure Xem(n: integer); tự viết
procedure Test;
var n: integer;
begin
n := 200; { test voi 200 phan tu }
Gen(n); Xem(n); readln;
end;
BEGIN
Test;
END.

Tag: gia sư tin học

Không có nhận xét nào:

Đăng nhận xét