zoukankan      html  css  js  c++  java
  • python day 8 random库 与 蒙特卡洛方法

    Random

    一、概述

    1.Random库是使用随机数的python标准库

    2.生成的实际上是伪随机数。采用梅森旋转算法生成。

    3.两类函数,常用的有8

    (1)基本随机函数:seed(),random()

    (2)扩展随机函数:randint(),getrandbits(),uniform(),randrange(),choice(),shuffle()洗牌

    二、基本随机函数

    1.Seed()

    (1)随机数种子,相当于赋值给梅森旋转中的变量,生成一个梅森旋转序列。默认值为当前的系统时间。

    (2)如果随机数种子相同,那么会按特定顺序,生成相同的随机数,也就是说,可以实现代码之前执行情况的复现。因为每次使用的都是相同的随机数数列。

    2.Random()

    (1)生成一个01的小数。

    (2)不可再现,即使是相同的代码,由于参数赋值不可能再相同,很难再现当初程序所使用的随机数到底是多少。

    (3)

    三、扩展随机函数

    1.生成整数

    (1)Randint(a,b)随机生成一个ab之间的整数

    (2)Randrange(m,n[,k])随机生成一个mn之间以k为步长的整数

    (3)Getrandbits(k)生成一个k比特长的随机整数

    2.生成小数

    (1)Uniform(a,b)生成ab之间的随机小数

    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库计时,测试程序的性能

     

     

  • 相关阅读:
    caffe学习
    阅读文献的三大问题:坐不住,记不住,想不开
    第五章 MySQL函数
    第四章 MySQL数据类型和运算符
    第三章 数据表的基本操作
    第二章 数据库的基本操作
    EXCEL的导入导出
    JAVA 通过位运算进行简单的加密
    JAVA 从控制台接收输入的字符
    JAVA Web JS
  • 原文地址:https://www.cnblogs.com/cfqlovem-521/p/11886429.html
Copyright © 2011-2022 走看看