Python怎么给定一个范围生成一个随机数,然后在另一个范围内生成下一个随机数
比如整体范围是1-1000,分成了1-200,201-500,501-700,701-1000这几个范围
然后在整体范围中抽取4个不重复的数
这些数还不能在同一个小范围之内
求解答
感激不尽!
import random
arr = sorted([1,1000] + [random.randint(2,999) for _ in range(4)])
for i in range(1,len(arr )):
print(random.randint(arr[i-1],arr[i]))
import random
print(random.random()) # 在0到1之间随机生成一个小数
结果如图
import random
MAX = 1000 # 范围为0~MAX,这里假设1000
print(random.random() * 1000)
没问题,我们可以取整嘛
import random
MAX = 1000 # 范围为0~MAX,这里假设1000
print(int(random.random() * 1000))
结果如图
"""
推导的数学公式为:
设有F(m),可以生成0~m的随机整数。
设有R(s, e),可以生成s~e的随机整数。
则R(s, e)的构造为:
R(s, e) = F(e-s) + s
这里加上s代表从0~(e-s)生成的随机数挪为s~e的随机数(两边同时加s)
"""
# 这里以生成201~500为例,其他的以此类推
import random
MIN = 201
MAX = 500
def F(m):
return int(random.random() * m)
def R(s, e):
rerturn F(e-s) + s
print(R(MIN, MAX))
以上