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

what is the most efficient way to search the result of x+y=x*y if I know x?

例如:

6+1.2=6*1.2
5+1.25=5*1.25

我想尝试写一个程序来搜索像搜索素数这样的结果:

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);
            }
        }
    }
}

但是程序有问题:

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

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

代数上:

y = x / (x - 1)

这比尝试反复寻找答案要快得多。

如下所述,别忘了赶上x = 0