当前位置: 首页 > news >正文

Python 随机数 random

1. Python seed() 函数

    seed() 方法改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数。

    seed( )是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。如:

import random
random.seed ( [x] )

其中的参数:x  是 改变随机数生成器的种子seed。如果不了解其原理,不必特别去设定seed,Python会自动选择seed。

该函数没有返回值。

例子:

import random

random.seed( 10 )
print "Random number with seed 10 : ", random.random()

# 生成同一个随机数
random.seed( 10 )
print "Random number with seed 10 : ", random.random()

# 生成同一个随机数
random.seed( 10 )
print "Random number with seed 10 : ", random.random()

运行结果:

Random number with seed 10 :  0.57140259469
Random number with seed 10 :  0.57140259469
Random number with seed 10 :  0.57140259469

 

2. 使用 random.randint(a, b) 生成随机整数:生成一个 a≤n≤b 的随机整数,即包含a和b。

print random.randint(13, 40)  #生成的随机数n: 13 ≤ n ≤  20  
print random.randint(10, 10)  #结果永远是10  
#print random.randint(30, 20)  #该语句是错误的。下限必须小于上限

通过查看该函数的python源码可以了解到其具体的取值范围:

def randint(self, a, b):
        """Return random integer in range [a, b], including both end points.
        """
        return self.randrange(a, b+1)

因此其取值范围是包括上下限的。

 

3. 例子1:

利用 Python 随机产生1000个1~10000之间的整数,找出其中最大的5个三位数并输出。
要求: 1)利用列表存储产生的所有数。 2)将最大的5个三位数存储在一个元组中。

from random import randint
l=[randint(1,10000) for i in range(1000)]

l_sorted=sorted([i for i in l if i<1000],reverse=True)
max5=(l_sorted[0],l_sorted[1],l_sorted[2],l_sorted[3],l_sorted[4])
print(max5)

运行结果:

 

4. 例子2:返回一组随机数并归一化

# 返回一个list,该list包含k个整数随机数,s为随机数的种子
def random_init_KDvector(k, s):
    list = []

    # 设置随机种子
    random.seed(s)
    for i in range(0, k):
        tmp = random.randint(1, 10000)
        list.append(tmp)
    return list

def normalize(list,sum=0): 
    if sum==0:
        for i in range(0,len(list)):
            sum+=list[i]
    num=0
    for i in range(0,len(list)-1):
        list[i]=list[i]*1.0/sum
        num +=list[i]
    list[len(list)-1]=1-num
    return list

U = dict()
ls=random_init_KDvector(5,3)
print("ls为:",ls)
U[0]=normalize(ls)
print("U[0]为:",U[0])

#ls为: [3899, 9710, 8917, 2137, 6062]
#U[0]为: [0.12689991863303499, 0.3160292921074044, 0.29021969080553295, 0.06955248169243287, 0.1972986167615948]

 

相关文章:

  • Nginx源码包需要的翻译软件有哪些
  • CentOS Linux搭建SVN服务器
  • 提醒我喝水chrome插件开发指南
  • 进度二
  • mysql数据库主从复制
  • Python_OOP
  • 获取ip地址
  • ajax引用检测用户名是否存在
  • IDEA快捷键笔记
  • JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】
  • 用Metaclass实现一个精简的ORM框架
  • 看不到短期回报,首席财务官们表示对AI并不感冒
  • 杂感一篇
  • 影响存储快照使用率的六大因素
  • 寒假作业02
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 《Java编程思想》读书笔记-对象导论
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • angular2开源库收集
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • Git同步原始仓库到Fork仓库中
  • Laravel Mix运行时关于es2015报错解决方案
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • springboot_database项目介绍
  • STAR法则
  • vue2.0项目引入element-ui
  • windows下使用nginx调试简介
  • 阿里云Kubernetes容器服务上体验Knative
  • 从零搭建Koa2 Server
  • 聚类分析——Kmeans
  • 老板让我十分钟上手nx-admin
  • 浅谈Golang中select的用法
  • 我看到的前端
  • 7行Python代码的人脸识别
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​学习一下,什么是预包装食品?​
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (三)uboot源码分析
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET 常见的偏门问题
  • .NET开发不可不知、不可不用的辅助类(一)
  • /etc/fstab 只读无法修改的解决办法
  • @RequestMapping用法详解
  • @SuppressLint(NewApi)和@TargetApi()的区别