程序需要在24小时内不间断的随机执行某个函数现在需要控制每个小时内执行fun()的次数为100±5次每个小时如何比较平均的随机运行比如说
1~5分钟 5次
6~10分钟 8次
11~15分钟 7次
...
55~60分钟 6次

解决方案 »

  1.   

    一小时=3600分钟,每小时95次,则每3600/95秒运行一次,如果105次,则是3600/105
    设置定时器,时间间隔在上面两个数之间随机,每次定时器到,在重新设置定时器,重新选择一个随机间隔,然后再运行你函数大概代码就是
    OnTimer(int nId){
       KillTimer(nId);
       int  t = rand() %(3600/95-3600/105)+3600/105;
       SetTimer(nId,t, NULL);
       //run fun;
    }
      

  2.   

    我数字不好。给你说说大概的思想:假设,你想随机执行,平均1秒一次。如果你在 [0-2]中取个随机数,这个随机数的平均值就是 1。 
    实际情况是,你取三次,可能为:0.1 0.2 0.3 ,这样,平均执行时间就是:0.2秒。 不过,不要怕,如果你执行100次,平均执行时间,就一定是1秒!!可以这么说,你执行100 次,平均执行时间为>1.3秒或者 < 0.7秒的概率 是小于1/1000000分之一。数字不好,不会算。但是思想是对的,你可以借鉴一下。