找到最接近2的幂的整数

use*_*773 0 python

所以我试图找到最接近n的两个力量.例如10.5接近8比16.到目前为止,我知道如何为日志和ceil导入math*.我不知道该怎么办.

kof*_*ein 7

首先,我创建两个可能的结果/指数,之后我使用min函数,它返回最接近x的幂的指数.关键字参数key保存用于测量这两个幂之间的距离的功能.

from math import log, ceil, floor
def closest_power(x):
    possible_results = floor(log(x, 2)), ceil(log(x, 2))
    return min(possible_results, key= lambda z: abs(x-2**z))

closest_power(11.5), closest_power(13.3)
Run Code Online (Sandbox Code Playgroud)

产量

(3.0, 4.0)
Run Code Online (Sandbox Code Playgroud)