下面代码主要实现的作用有:
1、随机生成介于范围之间的小数
2、随机生成介于范围之间的整数
3、随机生成介于范围之间的奇数或者偶数
4、随机生成介于范围之间正态分布随机数以及生成图片
5、随机生成生成介于范围之间均匀分布随机数以及生成图片
大家看看,如果有需要的继续看看,没有需要省的看完浪费时间,哈哈哈哈哈
各位小主,在下献上代码:
import random
import numpy
import matplotlib.pyplot as plt
import seaborn as sns
#1、随机生成小数
def CreateDecimal(start,end):
'''
:param start: 要处理数值的起始值
:param end: 要处理数值的结尾值
:return: 返回介于start和end之间的小数
'''
if end > start:
number = random.uniform(start,end)
print('获取start-end之间的小数')
return number
return '请输入符合end > start的数字'
#2、随机生成整数
def CreateInt(start,end):
'''
:param start:要处理数值的起始值
:param end:要处理数值的结尾值
:return:返回介于start和end之间的整数
'''
num_int = random.randint(start,end)
print('获取start-end之间的整数')
return num_int
#3、随机生成奇数或者偶数
def CreateEvenNum(start,end):
'''
:param start: 要处理数值的起始值
:param end: 要处理数值的结尾值
:return: 返回介于start和end之间的偶数
'''
uneven_num = random.randrange(start, end, 2)
if start % 2 == 1:
print('获取start-end之间的奇数')
else:
print('获取start-end之间的偶数')
return uneven_num
#4、随机生成正态分布随机数
def CreateNormalDistribution(mu,sigma,num):
'''
:param mu: 期望
:param sigma: 标准差
:param num: 多少个
:return: 生成正态分布随机数,并生成图片
'''
normal = numpy.random.normal(mu,sigma,num)
sns.set_palette("hls")
sns.distplot(normal, color="r", bins=1000, kde=True)
plt.show()
print('已生成折线图片')
return normal
#5、随机生成均匀分布随机数
def CreateUniformDistribution(d1,dn):
'''
:param d1:维度
:param dn:维度
:return:产生d1行dn列均匀分布随机数组,并生成图片
'''
uniform = numpy.random.rand(d1, dn)
sns.set_palette("hls")
sns.distplot(uniform, color="r", bins=1000, kde=True)
plt.show()
print('已生成折线图片')
return uniform
#6、主函数:作用为随机数的生成筛选
def Main(num_type,num_begin,num_stop,*keywords):
'''
:param num_type: 返回数值类型
:param num_begin: 数值起始点,起始维度
:param num_stop: 数值结束点,结束维度
:param keywords: 其他参数
:return: 输出想要的范围的随机数
'''
if num_type == 'Int':
num_int = CreateInt(num_begin, num_stop)
print(num_int)
elif num_type == 'Float':
num_dec = CreateDecimal(num_begin, num_stop)
print(num_dec)
elif num_type == 'EvenNum':
num_even = CreateEvenNum(num_begin, num_stop)
print(num_even)
elif num_type == 'NormalDistributio':
num_nor = CreateNormalDistribution(num_begin, num_stop, *keywords)
print(num_nor)
elif num_type == 'UniformDistribution':
num_uni = CreateUniformDistribution(num_begin, num_stop)
print(num_uni)
else:
print('请正确的对应类型')
if __name__ == '__main__':
type = input('请输入对应类型:整数--Int,小数--Float,奇数&偶数--EvenNum,正态分布随机数--NormalDistributio,均匀分布随机数--UniformDistribution')
begin = int(input('请输入起始值or正态分布的期望值or均匀分布的纬度'))
stop = int(input('请输入结束值or正态分布的标准差or均匀分布的纬度'))
if type == 'NormalDistributio':
other = int(input('请输入正态分布的个数'))
Main(type,begin,stop,other)
else:
Main(type, begin, stop)