如何列出指定范围内除以同一数余数相同的数字及对应编码实现
同余元素筛选方法及实现
通用筛选逻辑
要从任意数值组中筛选出除以固定除数后余数相等的元素,核心依赖模运算判断:
- 确定三个输入参数:待筛选数值集合、除数
d、目标余数r(合法取值范围为0 ≤ r < d,超出范围无符合条件结果) - 对集合内每个元素执行判断:
元素 % d == r - 所有返回
True的元素即为符合要求的结果
如果是连续数值区间的筛选,不需要逐个遍历判断,可以直接构造首项为r(若r为0则首项为d)、公差为d的等差数列,效率更高。
1~100范围内除以9余3的代码实现
Python
# 写法1:遍历判断,适合任意非连续数值组 res = [x for x in range(1, 101) if x % 9 == 3] # 写法2:等差数列生成,适合连续区间场景,效率更高 res = list(range(3, 101, 9))
输出结果:[3, 12, 21, 30, 39, 48, 57, 66, 75, 84, 93]
R
# 写法1:遍历判断 res <- which(1:100 %% 9 == 3) # 写法2:等差数列生成 res <- seq(from = 3, to = 100, by = 9)
输出结果与Python一致。
内容的提问来源于stack exchange,提问作者Planting R
相关产品推荐
相关产品推荐

