擅长:python、mysql、java
<p>我不知道这种方法是否会更快,但会更准确:</p>
<ol>
<li>在<code>length</code>上做一个求和运算,并将其保存到名为<code>cumsum</code>的列表中</li>
<li>假设长度是整数(否则必须规范化并选择一个介于0和1之间的数字),请在0和<code>cumsum</code>的最后一个元素之间选择一个随机数</li>
<li>检查cumsum并取第一个元素的索引,它小于或等于您选择的数字。在</li>
<li>转到第2步。选择另一个号码。在</li>
</ol>
<p>假设<code>lengths</code>是<code>[1,4,2,10,5]</code>,那么<code>cumsum</code>将是:<code>[1,5,7,17,22]</code>现在你在<code>0</code>和<code>22</code>之间随机选择一个数-<code>i</code>元素的概率是<code>lengeths[i]/cumsum[-1]</code>,这听起来更准确。在</p>