我想5秒内发送20条短信
平均1秒就是4条
但是实际中我希望每秒发送3—6条(随机)
应该怎么控制让他在5秒内每秒随机发送3——6条,但是总合是20条呢? 实际中的发送量比这个大很多,时间也长,所以一般的投机取巧好像还不成。

解决方案 »

  1.   

    const Total = 20;
          Times = 5;
          Min = 3;
          Max = 6;
    var  I, N, Sum: integer;
    begin
      Randomize;
      Sum := 0;
      Memo1.Clear;
      for I := 1 to Times - 1 do
        begin
          N := Random(Max - Min + 1) + Min;
          while (Total - N - Sum - (Times - i) * Min < 0) or (Total - N - Sum - (Times - i) * Max > 0) do
            N := Random(Max - Min + 1) + Min;
         Sum := Sum + N;
       Memo1.Lines.Add(Format('%d: %d', [I, N]));
       end;
      Memo1.Lines.Add(Format('%d: %d', [Times, Total - Sum]))
    end;
      

  2.   

    信誉分是以前回答的问题被提交到FAQ,审核通过了就加了,不过现在取消这个审核制度,要加点信誉分都很难了。