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

Sinh ngẫu nhiên tệp cấp số cộng



Sinh ngẫu nhiên tệp cấp số cộng



               Sinh ngẫu nhiên một cấp số cộng có n số hạng và ghi vào một tệp văn bản có tên cho trước.

Thuật toán
1. Sinh ngẫu nhiên số hạng thứ nhất a[1] và công sai d.
2. Sinh các phần tử a[i], i = 2..n
for i:=2 to n do a[i]:= a[i–1]+ d;
3. Ghi file
Độ phức tạp: n.
(*  Pascal  *) - gia sư tin học, dạy pascal nâng cao
program FCapCong;
uses crt;
const BL = #32;
procedure Gen(fn: string; n: integer);
var f: text; i,d: integer; x: longint;
begin
assign(f,fn); rewrite(f);
randomize;
d := random(n div 4)+1; {cong sai }
x := random(20); write(f,x,BL);
for i:= 2 to n do
begin { mỗi dòng ghi 20 số }
x:= x + d; write(f,x,BL);
if i mod 20 = 0 then writeln(f);
end;
if i mod 20 <> 0 then writeln(f);
close(f);
end;
BEGIN
Gen('DATA.INP',200); write('Ket'); readln;
END.

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

Đăng nhận xét