我的数学有问题:
假设我们有一个函数:F(x,y) = P;我的问题是:为该函数计算合适的 (x,y) 图的最有效方法是什么?这意味着我不需要坐标本身,但我需要它们的数量。 P 在范围内:[0 ; 10^14]。 “x”和“y”是整数。是使用暴力破解还是有一些高级技巧(数学/编程语言(C,C++))来足够快地解决这个问题?
更具体地说,函数是:x*y - ((x+y)/2) + 1。
最佳答案
x*y - ((x+y)/2) + 1 == P
等同于 (2x-1)(2y-1) == (4P-3 )
。
所以,您基本上是在寻找 4P-3
的因式分解数。如何在 C 或 C++ 中对数字进行因式分解可能是一个不同的问题,但每个因式分解都会产生原始方程的解。 [编辑:实际上有两个解决方案,因为如果 A*B == C
那么当然还有 (-A)*(-B) == C
]。
就编程语言 C 和 C++ 而言,只要确保您使用的类型足够大以包含 4 * 10^14
。 int
不行,所以试试 long long
。
关于c++ - 解方程。计数 (x,y),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6224970/