Random库
一、概述
1.Random库是使用随机数的python标准库
2.生成的实际上是伪随机数。采用梅森旋转算法生成。
3.两类函数,常用的有8个
(1)基本随机函数:seed(),random()
(2)扩展随机函数:randint(),getrandbits(),uniform(),randrange(),choice(),shuffle()洗牌
二、基本随机函数
1.Seed()
(1)随机数种子,相当于赋值给梅森旋转中的变量,生成一个梅森旋转序列。默认值为当前的系统时间。
(2)如果随机数种子相同,那么会按特定顺序,生成相同的随机数,也就是说,可以实现代码之前执行情况的复现。因为每次使用的都是相同的随机数数列。
2.Random()
(1)生成一个0到1的小数。
(2)不可再现,即使是相同的代码,由于参数赋值不可能再相同,很难再现当初程序所使用的随机数到底是多少。
(3)
三、扩展随机函数
1.生成整数
(1)Randint(a,b)随机生成一个a,b之间的整数
(2)Randrange(m,n[,k])随机生成一个m,n之间以k为步长的整数
(3)Getrandbits(k)生成一个k比特长的随机整数
2.生成小数
(1)Uniform(a,b)生成a,b之间的随机小数
3.序列
(1)Choice(seq)从序列seq中随机选择一个元素
(2)Shuffle(seq)将序列seq中元素随机排序
四、实例—圆周率的计算—
1.蒙特卡洛方法
2.import random as r
3.import time as t
4.start=t.perf_counter()
5.square=5000*5000
6.hits=0
7.for i in range(square):
8. a,b=r.random(),r.random()
9. if pow(pow(a,2)+pow(b,2),0.5)<=1:
10. hits+=1
11.print('圆周率是:{}'.format(4*hits/square))
12.print('程序运行时间是:{:.7f}'.format(t.perf_counter()-start))
五、数学思维与计算思维
1.数学思维:找到公式,用公式求解,此时计算机就是高级一点的计算器,不用什么编程
2.计算思维:抽象,用计算机自动化求解。
3.谁更准确?不好说。
4. 四色定理(世界近代三大数学难题之一),又称四色猜想、四色问题,是世界三大数学猜想之一。四色定理的本质正是二维平面的固有属性,即平面内不可出现交叉而没有公共点的两条直线。很多人证明了二维平面内无法构造五个或五个以上两两相连区域,但却没有将其上升到逻辑关系和二维固有属性的层面,以致出现了很多伪反例。不过这些恰恰是对图论严密性的考证和发展推动。计算机证明虽然做了百亿次判断,终究只是在庞大的数量优势上取得成功,这并不符合数学严密的逻辑体系,至今仍有无数数学爱好者投身其中研究。
六、程序性能与运行时间
1.程序运行时间多数是花费在循环语句上的,关注循环结构
2.使用time库获取程序运行时间
3.将程序分段,用time库计时,测试程序的性能