我有一个数学问题,它是我的编程问题的一部分
我有这样的声明
a = b%30;
如何用
b
来计算 a
?
我想了一下,但没能弄清楚。
根据定义,
b == 30*n + a
对于某个整数
n
。
请注意,有多个
b
值可以为您提供相同的 a
:
>>> b = 31
>>> b % 30
1
>>> b = 61
>>> b % 30
1
首先,显然,对于给定的
b
,通常有几种解决方案。 如果
a
是大多数编程语言中的余数运算符,那么
%
的符号至关重要。你知道这是一个编程问题的网站吧?如果 |a|>=30,则无解
如果 a = 0,则解为 30 的倍数。
如果 0
a
使得 < a < 30, the solutions are all the
b
对于某个正整数 b = 30 * k + a
。如果 -30
k
使得 < a < 0, the solutions are all the
b
对于某个正整数 b = - (30 * k - a)
。k
由于
b == 30*n + a
施加的约束,
b%30
必须在 0 到 29 之间但是 b 是无界的。每个 a
有(无限)多个
b
因此,您必须有一些其他方程来应用于 a
或
b
才能得到明确的答案。我将称之为n
要以编程方式求解 f(b)
,您还需要
b
的有效范围,或者至少需要一个起始值和移动方向:n
或者如果您想收集 n 范围内的多个 b
# an example function, this would be unique to whatever your problem is
function f(b)
return 100 <= b <= 1000
n = 0 # or whatever your start is
while not f(b) # could also be f(n) depending on your needs
n += 1 # or whatever your direction is
b == 30*n + a