从1到100秒有100个数据,用第二秒的数据减去第一秒的有个差值,在用第三秒的减去第二秒的有个差值,依此类推一直到100秒  
统计出在所有的差值中中对于每一个差值,跟它差值相等的出现次数。算法是什么?万分感谢!!!

解决方案 »

  1.   

    很好很强大~~~如果自已写算法,可能循环有点多~~
    不过可以考虑把差值放入数据库中然后一个const和group by搞定
      

  2.   


    var
    arr1:array[0..99] of Integer;
    arr2:array[0..98] of Integer;
    i,j,ftemp,fCount:integer;
    begin
    //从1到100个数
    for i:=0 to 99 do
    begin
      //赋予任意值
      arr1[i]:=RandomRange(0,100);
    end;
    for j:=0 to 98 do
    begin
      //差值赋予数组arr2
      arr2[j]:=arr1[j+1]-arr1[j];
    end;
    Memo1.Lines.Clear;
    for i:=0 to 98 do
    begin
      //取差值
      ftemp:=arr2[i];
      //初始fcount,有同样差值多少个
      fCount:=0;
      for j:=0 to 98 do
      begin
        if ftemp=arr2[j] then
        Inc(fCount);//计数加1
      end;
      Memo1.Lines.Add('第'+IntToStr(i+2)+'个和'+IntToStr(i+1)+'第个的差是'+IntToStr(ftemp)+'出现'+IntToStr(fCount)+'次');
    end;
    end;