擅长:python、mysql、java
<p>试试这个:</p>
<pre><code>import random
a = random.randint(10, 30)
b = random.randint(5, 20)
c = random.randint(10, 25)
d = random.randint(5, 15)
e = 100 - (a+b+c+d)
</code></pre>
<p><strong>编辑:</strong></p>
<p>下面是如何生成给定<code>n</code>范围约束和所需目标和的<code>n</code>随机数的列表:</p>
<pre><code>def generate(constraints, limit):
ans = [random.choice(c) for c in constraints]
return ans if sum(ans) == limit else generate(constraints, limit)
</code></pre>
<p>这就是你使用它的方法:</p>
<pre><code>generate([range(10,31),range(5,21),range(10,26),range(5,16),range(10,26)], 100)
=> [25, 20, 25, 12, 18]
</code></pre>
<p>不过,请注意:如果约束不能保证最终达到总和,则会出现无限循环和堆栈溢出错误,例如:</p>
<pre><code>generate([range(1,11), range(10, 21)], 100)
=> RuntimeError: maximum recursion depth exceeded while calling a Python object
</code></pre>