<p>假设x是一个介于0和1之间的实数</p>
<p>如果n=2,则有两个分数范围0到0.5和0.5到1</p>
<p>如果n=3,则有三个分数范围0到0.33、0.33到0.66和0.66到1</p>
<p>我想知道判断x属于哪个分数的最有效算法。你知道吗</p>
<p>如果x=0.2,n=3,x属于第一个分数,所以指数为0</p>
<p>如果x=0.4,n=3,x属于第二个分数,所以指数是1</p>
<p>下面是python3代码,它的复杂性为O(N)。你知道吗</p>
<pre><code>def index(x, n):
for i in range(0, n):
if i/n <= x and x <= (i + 1)/n:
return i
</code></pre>
<p>我想知道有没有更好的算法可以用常数时间?你知道吗</p>
<p>编辑:我之前没有明确说过,但是0和1都是x的合法值,当x=1时,结果应该是n-1</p>