确定 2 mod 模式收敛的所有点

Determining all points where 2 mod patterns converge

这可能更像是一个数学问题,但我正在尝试以最有效的方式在 Python and/or C#/Java(script) 中做到这一点

存在一个从 1 到 n 递增 1 的数据序列:

1,2,3,4,5,6,7,8,9,10......n

还有两个整型变量:x和y

对于数据系列中的每个值,计算 n % x 和 n % y 的值

例如:

let x = 1,  y = 3

n           n % x       n % y
----        -----       -----
1             0           1
2             0           2
3             0           0
4             0           1
5             0           2
6             0           0
...

问题:return 系列 n 的数据值列表 return n % xn % y

在上面的示例中,列表将是 [1,6,9,12...etc]

如果没有其余代码,我将很难为您提供解决方案,因此这里是通用答案:

在程序的开头,您使用 zeros = [] 创建了一个空列表。之后,在让 n 增加的循环的每个步骤中,检查是否 n % x == 0 And n % y == 0。如果它 returns True,则将当前 n 添加到列表 zeros.append(n)

你可以参考这样的代码。

def function(n, x, y):
    result_list = [1]
    for i_n in range(1, n):
        if ((i_n % x) == 0) and ((i_n % y) == 0):
            result_list.append(i_n)
    return result_list

print(function(50, 1, 3))

在代码中,以n50为例,您可以根据需要进行更改。

代码输出为,

[1, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48]