假设x是一个介于0和1之间的实数
如果n=2,则有两个分数范围0到0.5和0.5到1
如果n=3,则有三个分数范围0到0.33、0.33到0.66和0.66到1
我想知道判断x属于哪个分数的最有效算法。你知道吗
如果x=0.2,n=3,x属于第一个分数,所以指数为0
如果x=0.4,n=3,x属于第二个分数,所以指数是1
下面是python3代码,它的复杂性为O(N)。你知道吗
def index(x, n):
for i in range(0, n):
if i/n <= x and x <= (i + 1)/n:
return i
我想知道有没有更好的算法可以用常数时间?你知道吗
编辑:我之前没有明确说过,但是0和1都是x的合法值,当x=1时,结果应该是n-1
把两个数字相乘,然后去掉小数位:
复杂性是O(1)
只需这样做:
我只想做以下几件事:
相关问题 更多 >
编程相关推荐