擅长:python、mysql、java
<p>基于DhruvPathak的直接回答,创建一个简单的随机字符串,我有两个补充:①不均匀分布和②随机翻译,以防止预测字母的频率:</p>
<pre><code>translation = range(26)
random.shuffle(translation) # ②
random_string = ''.join(chr(
translation[random.randint(0, random.randint(1, 25))] + ord('a')) # ①
for _dummy in range(1000))
</code></pre>
<p>非均匀分布是通过使用<code>randint(randint(…))</code>来实现的,它基本上倾向于以较低的数字作为输出。在</p>
<p>在第一次尝试中,我得到了这个<code>translation</code>列表:</p>
^{pr2}$
<p>结果<code>random_string</code>(由<code>f = [ 0 ] * 25</code>,<code>for c in random_string: f[ord(c) - ord('a')] += 1</code>,<code>zip(*reversed(sorted(zip(f, range(26)))))[1]</code>)中的字符计数给出了这个列表:</p>
^{3}$
<p>因此,结果与预期相当吻合。在</p>