python - 查找与特定结果的方程匹配的两个数字的有效方法是什么?

标签 python algorithm math

引用this回答我在 StackExchange 上的问题,在 Python 中找到满足以下等式的数字的最佳和有效方法是什么:

x = (2 ** a) * (3 ** b)

例如,如果我有数字 40,我必须找出 ab 的值是多少,x 的值就变成 40?

最佳答案

这是一道数学题。

如果您希望 ab 是整数,则方程只有在 x 是 2 和 3 的倍数并且没有其他质因数时才有解。

解决方案是在 x 的质因数分解中找到 2 和 3 的指数(只需将 x 除以 2 直到它不能再整除,然后再除以 3,如果还有剩余则无解)

如果您希望 ab 为实数,则如果 x > 0,则您有无限个数或解。事实上,您可以选择 a 并找到 b 作为 ln(x/(2**a))/ln(3)

你确定你的公式吗?

关于python - 查找与特定结果的方程匹配的两个数字的有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66673919/

相关文章:

javascript - 无法使用javascript以自动格式删除

python - 从数学函数创建图形

matlab - 在 MATLAB 中优化重复估计(目前是一个循环)

python - Pandas 按名称对列进行排序

python - Numpy/IPython 相当于Matlab的assignin

Python-按常量列标题排列 CSV 文件的不同行

python - 剥离 HTML 标签以获取 python 中的字符串

c++ - 打印 int > 0 的总和

algorithm - 为什么常量执行时间的 Big O 表示法是 O(1) 而不是 O(2)?

C++ 3D 数学库