擅长:python、mysql、java
<p>这是一个非常常见且愚蠢的面试问题,下面是它的解决方案/算法:</p>
<pre><code>import random
a = range(1,50)
for i in xrange(6):
b = a[random.randint(0,len(a)-i)]
a.remove(b)
print b
</code></pre>
<p>对于关心效率的人来说,这里是我的解决方案和Chin's的测试台:</p>
<pre><code>>>> random.sample(xrange(1,50), 6)
[26, 39, 36, 46, 37, 1]
</code></pre>
<p>结果是:</p>
<pre><code>>python -mtimeit -s'import try2'
[38, 7, 31, 24, 30, 32]
100000000 loops, best of 3: 0.0144 usec per loop
>python -mtimeit -s'import try1'
36
26
41
31
37
14
100000000 loops, best of 3: 0.0144 usec per loop
</code></pre>
<p>决心在同一时间!</p>