For*_*Bru 6 c python algorithm base
我正在使用不同基础的数字(基数为10,基数为8,基数为16等).我正在尝试计算每个数字中的字符数.
例
数:
ABCDEF位数:6
我知道基于对数的方法,但我遇到了一些问题.
此Python脚本输出无法正确计算1,000,000中3,969个数字中的正确位数.
我认为使用对数的方法可能相当慢
链接:
编辑:当然我可以计算一个字符串的长度,但最让我感兴趣的是,如果可以在没有常规字符串的情况下进行计算.我想知道可以帮助实现它的算法,只知道源基和转换的基数.
Edit2: source-base是base-10,转换为的base可以是任何其他base.
我们如何计算不同基数中的数字位数?
如果我知道base-10中的数字,如何在不执行转换的情况下计算转换为base-16(base-8等)的相同数字的位数?
注意:一些Python或C代码将非常感激
对数不应该太慢.您可以通过以下公式轻松计算任何基数的对数:logBaseN(x)=logBaseA(x)/logBaseA(N)- 您可以使用ln(基数e = 2.718 ......)或者logBase10您拥有的任何数据.所以你真的不需要一个程序,一个公式应该这样做:
num_digets(N, base) = 1 + floor(log(N) / log(base))
Run Code Online (Sandbox Code Playgroud)
N您的号码和base您想要该号码的基数在哪里.
有关更多说明,请查看此处:http: //www.mathpath.org/concepts/Num/numdigits.htm
| 归档时间: |
|
| 查看次数: |
1762 次 |
| 最近记录: |