如果我知道x,搜索x + y = x*y结果的最有效方法是什么?

ggr*_*grr -1 language-agnostic algorithm math

例如:

6+1.2=6*1.2
5+1.25=5*1.25
Run Code Online (Sandbox Code Playgroud)

我想尝试编写一个程序来搜索结果,如搜索素数:

public class Test{
    public static void main(String[] args){
        float x=-1.0f;
        float d=0.0001f;
        for(float y=-10;y<10;y=y+d){
            if(x+y-x*y>=-d && x+y-x*y<=d){
                System.out.println(y);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但程序有一些问题:

  1. 它可以在-10搜索结果只有10个,因为之间的搜索Float.MIN_VALUEFloat.MAX_VALUE太慢
  2. 我知道9 + 1.125 = 9*1.125,但即使我设置每个增量为0.0001,程序也找不到任何结果
  3. 有时程序会在实际结果周围打印多个结果

有没有其他更快的方法或更好的算法来查找结果?

Whe*_*dog 5

代数:

y = x / (x - 1)
Run Code Online (Sandbox Code Playgroud)

它会比尝试迭代你的答案快得多.

如下所述,别忘了抓住 x = 0