第五章:数学运算-random:伪随机数生成器-生成随机数

5.3 random:伪随机数生成器 random模块基于Mersenne Twister算法提供了一个快速伪随机数生成器。原先开发这个生成器是为了向蒙特卡洛模拟生成输入,Mersenne Twister算法会生成大周期近均匀分布的数,因此适用于大量不同类型的应用。 5.3.1 生成随机数 random()函数从所生成的序列返回下一个随机的浮点值。返回的所有值都落在0<=n<1.0区间内。 import random for i in range(5): print('%04.3f'
分类: 其他 发布时间: 03-03 23:43 阅读次数: 0

第五章:数学运算-random:伪随机数生成器-指定种子

5.3.2 指定种子 每次调用random()都会生成不同的值,并且在一个非常大的周期之后数字才会重复。 这对于生成唯一值或变化的值很有用,不过有些情况下可能需要提供相同的数据集,从而以不同的方式处理。对此,一种技术是使用一个程序生成随机值,并保存这些随机值,以便在另一个步骤中再做处理。不过,这对于量很大的数据来说可能并不实用,所以random包含了一个seed()函数,可以用来初始化伪随机数生成器,使它能生成一个期望的值集。 import random random.seed(1) fo
分类: 其他 发布时间: 03-03 23:43 阅读次数: 0

第五章:数学运算-random:伪随机数生成器-保存状态

5.3.3 保存状态 random()使用的伪随机算法的内部状态可以保存,并用于控制后续生成的随机数。如果在继续生成随机数之前恢复前一个状态,则会减少出现重复的可能性,则避免出现之前输入中重复的值或值序列。getstate()函数返回一些数据,以后可以借助setstate()利用这些数据重新初始化伪随机数生成器。 import random import os import pickle if os.path.exists('state.dat'): # Restore the pr
分类: 其他 发布时间: 03-03 23:42 阅读次数: 0

第五章:数学运算-random:伪随机数生成器-随机整数

5.3.4 随机整数 random()将生成浮点数。可以把结果转换为整数,不过直接使用randint()生成整数会更方便。 import random print('[1,100]:',end=' ') for i in range(3): print(random.randint(1,100),end=' ') print('\n[-5,5]:',end=' ') for i in range(3): print(random.randint(-5,5),end=' '
分类: 其他 发布时间: 03-03 23:42 阅读次数: 0

第五章:数学运算-random:伪随机数生成器-选择随机元素

5.3.5 选择随机元素 随机数生成器有一种常见用法,即从一个枚举值序列中选择元素,即使这些值并不是数字。random包括一个choice()函数,可以从一个序列中随机选择。下面这个例子模拟硬币10000次来统计多次面朝上,多少次面朝下。 import random import itertools outcomes = { 'heads':0, 'tails':0, } sides = list(outcomes.keys()) for i in range(10
分类: 其他 发布时间: 03-03 23:42 阅读次数: 0

第五章:数学运算-random:伪随机数生成器-排列

5.3.6 排列 要模拟一个扑克牌游戏,需要把一副牌混起来,然后向玩家发牌,同一张牌不能多次使用,使用choice()可能导致同一张牌被发出两次,所以,可以使用shuffle()来洗牌然后在发各张牌时删除所发的牌。 import random import itertools FACE_CARDS = ('J','Q','K','A') SUITS = ('H','D','C','S') def new_deck(): return [ # Always use 2
分类: 其他 发布时间: 03-03 23:42 阅读次数: 0

第五章:数学运算-random:伪随机数生成器-采样

5.3.7 采样 很多模拟需要从大量输入值中得到随机样本。sample()函数可以生成无重复值的样本,并且不会修改输入序列。下面的例子会打印系统字典中单词的一个随机样本。 import random with open('/usr/share/dict/words','rt') as f: words = f.readlines() words = [w.rstrip() for w in words] for w in random.sample(words,5): pr
分类: 其他 发布时间: 03-03 23:41 阅读次数: 0

第五章:数学运算-random:伪随机数生成器-多个并发生成器

5.3.8 多个并发生成器 处理模块级函数,random还包括一个random类以管理多个随机生成器的内部状态。之前介绍的所有函数都可以作为Random实例的方法得到,并且每个实例都可以被单独初始化和使用,而不会干扰其他实例返回的值。 import random import time print('Default initializiation:\n') r1 = random.Random() r2 = random.Random() for i in range(3): p
分类: 其他 发布时间: 03-03 23:41 阅读次数: 0

第五章:数学运算-random:伪随机数生成器-SystemRandom

5.3.9 SystemRandom 有些操作系统提供了一个随机数生成器,可以访问更多能引入生成器的信息源。random通过SystemRandom类提供了这个特性,该类与Random的API相同,不过使用os.urandom()生成值,该值会构成所有其他算法的基础。 import random import time print('Default initializiation:\n') r1 = random.SystemRandom() r2 = random.SystemRando
分类: 其他 发布时间: 03-03 23:41 阅读次数: 0

第五章:数学运算-random:伪随机数生成器-非均匀分布

5.3.10 非均匀分布 random()生成的值为均匀分布,这对于很多目的来说非常有用,不过,另外一些分布可以更准确地对特定情况建模。rnadom模块还包含一些函数以生成满足这些分布的值。这里将列出这些分布,但是并不打算详细介绍,因为它们往往只在特定条件下使用,而且需要更复杂的例子来说明。 5.3.10.1 正态分布 正态分布(normal distribution)常用于非均匀的连续值,如梯度、高度、重量等。正态分别产生的曲线有一个独特形状,所以被昵称为“钟形曲线”。random包含两个函
分类: 其他 发布时间: 03-03 23:41 阅读次数: 0

第五章:数学运算-math:数学函数-特殊常量

5.4 math:数学函数 math模块实现了正常情况下原生平台C库中才有的很多专用IEEE函数,可以使用浮点值完成复杂的数学运算,包括对数和三角函数运算。 5.4.1 特殊常量 很多数学运算依赖于一些特殊的常量。math包含有π(pi)、e、nan(不是一个数)和infinity(无穷大)的值。 import math print(' π :{:.30f}'.format(math.pi)) print(' e :{:.30f}'.format(math.e)) print('nan
分类: 其他 发布时间: 03-03 23:40 阅读次数: 0

第五章:数学运算-math:数学函数-测试异常值

5.4.2 测试异常值 浮点数计算可能导致两种类型的异常值。第一种inf(无穷大),当用double存储一个浮点值,而该值会从一个具有很大绝对值的值上溢出时,就会出现这个异常值。 import math print('{:^3} {:6} {:6}'.format('e','x','x**2','isinf')) print('{:-^3} {:-^6} {:-^6}'.format('','','','')) for e in range(0,201,20): x = 10.0
分类: 其他 发布时间: 03-03 23:40 阅读次数: 0

MySQL 分库分表,写得太好了!

https://www.toutiao.com/a6603492496779510276/?tt_from=mobile_qq&utm_campaign=client_share&timestamp=1549497188&app=news_article&utm_source=mobile_qq&iid=59568063679&utm_medium=toutiao_android&group_id=6603492496779510276 Mysql分库分表方案 1.为什么要分表: 当一张表的数
分类: 其他 发布时间: 03-03 23:40 阅读次数: 0

数据库分库分表,何时分?怎样分?详细解读,一篇就够了

https://www.toutiao.com/a6640035602592956932/?tt_from=mobile_qq&utm_campaign=client_share&timestamp=1549497317&app=news_article&utm_source=mobile_qq&iid=59568063679&utm_medium=toutiao_android&group_id=6640035602592956932 一. 数据切分 关系型数据库本身比较容易成为系统瓶颈,单
分类: 其他 发布时间: 03-03 23:39 阅读次数: 0

构建基于分布式SOA架构的统一身份认证体系

https://www.cnblogs.com/rainy-shurun/p/5412365.html 摘要:本文充分利用SOA架构松耦合的特点,通过规范统一网络接口实现业务系统整合,既提升系统安全性,又简化资源访问操作,具有重要的理论和现实意义。 统一身份认证旨在将分散在各个信息系统中的用户和权限资源进行统一集中管理,提升系统安全性,简化资源访问操作。各家金融机构的业务系统由于开发时期不同,支撑技术各不相同,系统环境彼此独立,统一身份认证体系需要面对跨平台、跨系统的巨大挑战。近年来,面向服务
分类: 其他 发布时间: 03-03 23:39 阅读次数: 0

平台级SAAS架构的基础:统一身份管理系统

https://mtide.net/平台级SAAS架构的基础-统一身份管理系统.html [TOC] 业内在用户统一身份认证及授权管理领域,主要关注 4 个方面:集中账号管理(Account)、集中认证管理(Authentication)、集中授权管理(Authorization)和集中审计管理(Audit), 简称 4A 管理。后来发展了 IAM(Identity and Access Management,即身份识别与访问管理)的相关技术,在云计算等领域应用广泛。整体来说,不管是 4A 还
分类: 其他 发布时间: 03-03 23:39 阅读次数: 0

漫谈单点登录(SSO)

https://www.cnblogs.com/EzrealLiu/p/5559255.html?tdsourcetag=s_pcqq_aiomsg 1. 摘要 ( 注意:请仔细看下摘要,留心此文是否是您的菜,若浪费宝贵时间,深感歉意!!!) SSO这一概念由来已久,网络上对应不同场景的成熟SSO解决方案比比皆是,从简单到复杂,各式各样应有尽有!开源的有OpenSSO、CAS ,微软的AD SSO,及基于kerberos 的SSO等等……这些优秀的解决方案尽显开发及使用者的逼格,当然需求所致无
分类: 其他 发布时间: 03-03 23:39 阅读次数: 0

sso简单原理及实现

https://www.cnblogs.com/ywlaker/p/6113927.html (2017-09-22更新)GitHub:https://github.com/sheefee/simple-sso 一、单系统登录机制 1、http无状态协议   web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系   但这也同时意味着,任
分类: 其他 发布时间: 03-03 23:38 阅读次数: 0

零基础理解大型分布式架构的演进历史、技术原理、最佳实践

https://www.toutiao.com/a6612410520869798408/?tt_from=mobile_qq&utm_campaign=client_share&timestamp=1549953446&app=news_article&utm_source=mobile_qq&iid=59568063679&utm_medium=toutiao_android&group_id=6612410520869798408 1、前言 随着社会的发展、互联网技术的进步,以前的大型机
分类: 其他 发布时间: 03-03 23:38 阅读次数: 0

接入层技术演进(负载均衡、高可用)

https://www.toutiao.com/a6576189985551024644/?tt_from=mobile_qq&utm_campaign=client_share&timestamp=1549955428&app=news_article&utm_source=mobile_qq&iid=59568063679&utm_medium=toutiao_android&group_id=6576189985551024644 一、问题域 nginx、lvs、keepalived、f
分类: 其他 发布时间: 03-03 23:38 阅读次数: 0