给定一个数字作为输入,告诉它的组

Given a number as input, tells its group

假设我们有几组 4 个数字,在两组 A 和 B 之间交替。

所以,

这种模式还在继续。

现在我正在尝试编写一个函数,将一个数字作为输入,告诉它的组。

所以给定数字,比如 3,returns "Group A"。类似地,输入数字 14,returns "Group B".

Python 中的简单函数可能如下所示:

def tell_group(num):
    A = [0,1,2,3,8,9,10,11]
    if num in A:
       return "Group A"
    else:
       return "Group B" 

但这不是可扩展的。

我不是在寻找任何特定的语言实现,而是在寻找可以针对任何给定数字实现此目的的数学逻辑。

您可以使用模运算符 % 又名 MOD

if   num % (groupSize * 2) < groupSize  // is "Group A"

或者这样理解:

 0 MOD (4*2) < 4   // true
 3 MOD (4*2) < 4   // true 
 4 MOD (4*2) < 4   // false 
13 MOD (4*2) < 4   // false 

这是一个 JavaScript 测试用例:

function getGroup(num, groupSize) {

  let group;

  if ( num % (groupSize * 2) < groupSize) 
      group = "Group A";
  else
      group = "Group B";
   
  return group;
  
}

console.log( getGroup(0, 4) );
console.log( getGroup(3, 4) );
console.log( getGroup(4, 4) );
console.log( getGroup(13, 4) );

请注意,以上仅适用于 num 为正整数,否则结果将为 true。在这种情况下,您可以做 if(num < 0) // handle error here; 或做一些数学 ABS...