如何生成一个不以 0 开头且具有唯一数字的随机 4 位数字?

2024-02-13

这几乎可以正常工作,但数字有时以 0 开头:

import random
numbers = random.sample(range(10), 4)
print(''.join(map(str, numbers)))

我找到了很多例子,但没有一个能保证序列不会以0.


我们生成 1 - 9 范围内的第一个数字,然后从剩余的数字中取出接下来的 3 个数字:

import random

# We create a set of digits: {0, 1, .... 9}
digits = set(range(10))
# We generate a random integer, 1 <= first <= 9
first = random.randint(1, 9)
# We remove it from our set, then take a sample of
# 3 distinct elements from the remaining values
last_3 = random.sample(digits - {first}, 3)
print(str(first) + ''.join(map(str, last_3)))

生成的数字是等概率的,我们一步就得到了一个有效的数字。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何生成一个不以 0 开头且具有唯一数字的随机 4 位数字? 的相关文章

随机推荐