给定一个数字作为输入,告诉它的组
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...
假设我们有几组 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...