所以我试图找到最接近n的两个力量。例如10.5接近8比16。到目前为止,我知道如何为日志和ceil导入math *。我不知道该怎么办。
答案 0 :(得分:5)
首先,我创建两个可能的结果/指数,之后我使用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)
输出
(3.0, 4.0)
答案 1 :(得分:0)
您将获得两个数字a和b。当a提升到某个幂p时,我们得到一个数字x。现在,您需要找到最接近b的x的值。
#User function Template for python3
def nearestPower(a,b):
high=100000 #any big number
sum=1
while True:
sum=sum*a;
if(abs(sum-b)<high):
high=abs(sum-b)
c=sum
if(abs(sum-b)>high):
break;
return c
答案 2 :(得分:0)
对于整数,您还可以检查数字的二进制表示形式的第二个数字。
import tkinter
canvas = tkinter.Canvas(width=640, height=480)
canvas.pack()
def function1(event):
print(repr(event))
canvas.bind("ButtonPress-1", function1)
canvas.mainloop()
答案 3 :(得分:-1)
round(math.log(n, 2))
可能会工作。