擅长:python、mysql、java
<p>只是玩玩而已。在</p>
<p>对于像我这样不太擅长数学的人来说,这是一个效率更高,但可能更为明显的实现方法。。。在</p>
<p>创建任何所需分布的一种简单方法是用项目的所需百分比填充列表,然后使用<code>random.choice(<list>)</code>,因为这将返回列表中项目的统一选择。在</p>
<pre><code>import random
probs = [30.1, 17.6, 12.5, 9.7, 7.9, 6.7, 5.8, 5.1, 4.6]
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9]
population = sum([[n] * int(p * 10) for n, p in zip(nums, probs)], [])
max_value = 100
min_value = 1
result_pop = []
target_pop_size = 1000
while len(result_pop) < target_pop_size:
s = str(random.choice(population))
while True:
r = random.randint(min_value, max_value)
if str(r).startswith(s):
break
result_pop.append(r)
</code></pre>