如果我递归3,200
除2
十四次,我会0.1953125
(((((((((((((3200/2)/2)/2)/2)/2)/2)/2)/2)/2)/2)/2)/2)/2)/2 = 0.1953125
如果我按0.1953125
递归2
次,我得到3,200
(((((((((((((0.1953125*2)*2)*2)*2)*2)*2)*2)*2)*2)*2)*2)*2)*2)*2 = 3,200
我正在尝试找到执行此操作的数学函数的术语以及如何在Python中实现它
答案 0 :(得分:3)
>>> 3200.0 / 2**14
0.1953125
>>>
>>> 0.1953125 * 2**14
3200.0
**
表示Python中的 power ,就像在Fortran中一样。
请注意(如果您只使用数字2),您也可以获得2 x 并按位移位:
>>> 3200.0 / (1 << 14)
0.1953125
>>>
>>> 0.1953125 * (1 << 14)
3200.0
答案 1 :(得分:1)
它的幂函数:3200 /(2 ^ 14)= 0.1953125和0.1953125 *(2 ^ 14)是3200
答案 2 :(得分:1)
你的第一个等式等于
3200/(2*2*2*2*2*2*2*2*2*2*2*2*2*2)
因为乘法是associative(即,parens并不重要)
同样(甚至更容易)你的第二个等式是
0.1953125*2*2*2*2*2*2*2*2*2*2*2*2*2*2
在这两种情况下,2*2*...
的字符串是14的幂,其中python是2**14
或math.pow(2,14)
。
所以我们可以将它们重写为
3200 / (2**14)
[与3200 * 2**(-14)
相同,因为负权力是正权力的倒数]和
0.1953125 * 2**14