実際にを使用せずに、基数(たとえば、16の基数2の対数)を基準にした数値に基づいて数値の対数を計算できるかどうか疑問に思いましたlog()
。なんとかできましたが、あまり効率的ではないと思います。
これはPythonでの私のコードです:
def myLog(x,b):
exp=0
ans=b**exp
while x!=ans:
ans=b**exp
if ans==x:
return exp
exp=exp+1
だから私はそれを与えることができ、myLog(16,2)
それは4を返すはずです。そして確かにそれは最も効率的な方法ではないと私は信じています。それで、この場合だけでなく、ほとんどの場合、どうすればそれを修正してコードをより効率的にすることができますか?彼ら?