C++ 帮助重新排列/求解方程

C++ 帮助重新排列/求解方程,c++,c,algebra,C++,C,Algebra,我有下面的C公式 bucket = (hash - _min) * ((_capacity-1) / range()); 我需要重新排列方程式,以返回_容量而不是桶(除了_容量之外,我还有其他所有变量)。e、 g 正如你所看到的,这是一个相当简单的方程,我只需要左边的x。但是我的代数很生疏,所以任何帮助都很感激 capacity = (range() * bucket) / (hash - _min) + 1; 如果hash不能再等于\u min的话,把公式写在一张纸上,解出x,然后开始编

我有下面的C公式

bucket = (hash - _min) * ((_capacity-1) / range());
我需要重新排列方程式,以返回_容量而不是桶(除了_容量之外,我还有其他所有变量)。e、 g

正如你所看到的,这是一个相当简单的方程,我只需要左边的x。但是我的代数很生疏,所以任何帮助都很感激

capacity = (range() * bucket) / (hash - _min) + 1;


如果
hash
不能再等于
\u min

的话,把公式写在一张纸上,解出x,然后开始编程。两边都做同样的事情……难道没有专门研究数学的stackexchange站点吗?我们应该把链接放在这里。@安德鲁:那个网站是为数学毕业生和高等数学问题而设的。这个问题就到此为止了。是mathoverflow.net,因为今天是星期五。。。。让我们看看你是否正确:-)是的。。但即使在第一种情况下,你也只能得到0作为答案。。但是这比除法零错误要好如果hash等于
\u min
,那么在第一个eq
bucket
中也将是0。这将使这个等式为0/0。这让我想知道。。。为什么计算机不够聪明,不能意识到0/0不是错误,它只是0?任何在一种形式下有效的方程都应该在任何其他形式下有效,如果这种形式真的相等。@Renesis,因为有时0/0=1。认真地(不耐烦的人在“担心加减比担心乘法和除法更重要”之后的第3段)@Renesis:0/0与计算机“足够聪明能算出它是0”无关。0/0未定义;无意义的它不是0,也不是什么。这根本没有道理。在这个特殊的例子中,0正好起作用。也许我不够聪明,无法理解为什么0/0不等于0(如果两个零都是真的,由于某些精度错误而不是零)。
capacity = (range() * bucket) / (hash - _min) + 1;
bucket = (hash - _min) * ((_capacity - 1) / range()); // start
bucket = ((hash - _min) * (_capacity - 1)) / range(); // rearrange
range() * bucket = (hash - _min) * (_capacity - 1); // multiply by range
(range() * bucket) / (hash - _min) = _capacity - 1; // divide by (hash - _min)
(range() * bucket) / (hash - _min) + 1 = _capacity; // add 1
capacity = (range() * bucket) / (hash - _min) + 1; // rearrange
_capacity = 1 + bucket / (hash - _min) * range();