1 / 37
文档名称:

abfcrpc算法大全常用c语言算法,包括数论算法,图论算法、排序算法、高精度.doc

格式:doc   大小:77KB   页数:37页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

abfcrpc算法大全常用c语言算法,包括数论算法,图论算法、排序算法、高精度.doc

上传人:3133613015 2020/11/17 文件大小:77 KB

下载得到文件列表

abfcrpc算法大全常用c语言算法,包括数论算法,图论算法、排序算法、高精度.doc

相关文档

文档介绍

文档介绍:-+
懒惰是很奇怪的东西,它使你以为那是安逸,是休息,是福气;但实际上它所给你的是无聊,是倦怠,是消沉;它剥夺你对前途的希望,割断你和别人之间的友情,使你心胸日渐狭窄,对人生也越来越怀疑。
—罗兰
一、数论算法
1.求两数的最大公约数
function  gcd(a,b:integer):integer;
begin
  if b=0 then gcd:=a
    else gcd:=gcd (b,a mod b);
end ;
2.求两数的最小公倍数
function  lcm(a,b:integer):integer;
begin
  if a<b then swap(a,b);
  lcm:=a;
  while lcm mod b>0 do inc(lcm,a);
end;
3.素数的求法

function prime (n: integer): Boolean;
  var I: integer;
  begin
    for I:=2 to trunc(sqrt(n)) do
      if n mod I=0 then begin
 prime:=false; exit;
end;
    prime:=true;
  end;
(包含求50000以内的素数表):
  procedure getprime;
    var
      i,j:longint;
      p:array[1..50000] of boolean;
     begin
       fillchar(p,sizeof(p),true);
p[1]:=false;
i:=2;
while i<50000 do begin
  if p[i] then begin
    j:=i*2;
    while j<50000 do begin
      p[j]:=false;
      inc(j,i);
    end;
   end;
   inc(i);
 end;
 l:=0;
 for i:=1 to 50000 do
   if p[i] then begin
     inc(l);pr[l]:=i;
  end;
end;{getprime}
 
   function prime(x:longint):integer;
     var i:integer;
     begin
       prime:=false;
for i:=1 to l do
  if pr[i]>=x then break
    else if x mod pr[i]=0 then exit;
prime:=true;
     end;{prime}
二、图论算法
1.最小生成树

   procedure prim(v0:integer);
     var
       lowcost,closest:array[1..maxn] of integer;
i,j,k,min:integer;
     begin
       for i:=1 to n do begin
  lowcost[i]:=cost[v0,i];
  closest[i]:=v0;
 end;
for i:=1 to n-1 do begin
  {寻找离生成树最近的未加入顶点k}
  min:=maxlongint;
  for j:=1 to n do
    if (lowcost[j]<min) and (lowcost[j]<>0) then begin
      min:=lowcost[j];
      k:=j;
    end;
  lowcost[k]:=0; {将顶点k加入生成树}
     {生成树中增加一条新的边k到closest[k]}
  {修正各点的lowcost和closest值}
  for j:=1 to n do
    if  cost[k,j]<lwocost[j] then begin
      lowcost[j]:=cost[k,j];
      closest[j]:=k;
    end;
  end;
end;{prim}
:(贪心)
按权值递增顺序删去图中的边,若不形成回路则将此边加入最小生成树。
function