如何实现每 3 次命中 2 到 return 为真?

How to implement a 2 into every 3 hits to return a true?

我正在尝试实现一个通用算法,每 5 次命中中有 2 次 return 为真。2 次是允许的,5 次是命中。简而言之,这意味着如果一个函数被调用 5 次其中的 2 次,它将 return 为真,否则将为假。这是我的尝试,但似乎不正确。关于如何修复它或者是否有更好的方法来解决这个问题的任何建议?

//2 in every 3 hits will return a true.
int hitlimit = 3;
int allowedlimit = 2;
int allowedTracker = 0;
int hitsTracker = 0;
bool test()
{
   hitsTracker++;
   if(allowedTracker < allowedlimit && hitsTracker < hitlimit) 
   {
     allowedTracker++;
     if(allowedTracker >= allowedlimit) 
     {
        allowedTracker = 0 ; 
        hotstracker =  0;
     }
     return true;    
   }
   return false;
}

我知道您想生成一个确定性序列,其中包含 allowedLimit 个 1,然后是 hitlimit - allowedlimit 个零。这是一个周期序列,可以很容易地从当前指数计算出来:

int hitlimit = 3;
int allowedlimit = 2;
int hitsTracker = 0;
bool test() {
    return hitsTracker++ % hitlimit < allowedlimit;
}