擅长:python、mysql、java
<p>所以你想要四个随机数加到<code>a</code>?当然,您可以尝试选择四个随机数,直到找到一个加起来等于<code>a</code>的集合,但是对于<code>a</code>的大值,这可能需要一段时间(您肯定不希望递归地执行此操作)。你知道吗</p>
<p>最好在<code>0</code>和<code>a</code>之间选择三个分割点:</p>
<pre><code>def passlen(a):
splits = sorted([random.randrange(0,a) for _ in range(3)])
uplen = splits[0]
lwlen = splits[1] - uplen
speclen = splits[2] - uplen - lwlen
nmbrlen = a - uplen - lwlen - speclen
return uplen, lwlen, speclen, nmbrlen
</code></pre>