Python;随机数

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]))

Python有一种库,叫做random

使用方法如下:

import random
print(random.random())    # 在0到1之间随机生成一个小数

img

结果如图

那么怎样抽取一个范围呢?我们可以这么做:

import random
MAX = 1000      # 范围为0~MAX,这里假设1000
print(random.random() * 1000)

img


结果如图

哎不对啊,怎么会有小数?!

没问题,我们可以取整嘛

import random
MAX = 1000      # 范围为0~MAX,这里假设1000
print(int(random.random() * 1000))

img

结果如图

接下来,就是生成MIN~MAX范围的随机数:

"""
推导的数学公式为:
设有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))

以上