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

     

     

  • 相关阅读:
    Pascal's Triangle II
    Pascal's Triangle
    Best Time to Buy and Sell Stock II
    Best Time to Buy and Sell Stock
    Populating Next Right Pointers in Each Node
    path sum II
    Path Sum
    [转载]小波时频图
    [转载]小波时频图
    [转载]Hilbert变换及谱分析
  • 原文地址:https://www.cnblogs.com/cfqlovem-521/p/11886429.html
Copyright © 2011-2022 走看看