蒙特·卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的应用,其中就包括圆周率近似值的计问题. 假设有一块边长为2的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点坐标(x,y)必然在木板上(更多的时候是落在单位圆内), 如果扔的次数足够多,那么落在单位圆内的次数除以总次数再乘以4,这个数字会无限逼近圆周率的值. 这就是蒙特·卡罗发明的用于计算圆周率近似值的方法. 编写程序,模拟蒙特·卡罗计算圆周率近似值的方法,输入掷飞镖次数,然后输出圆周率近似值. import ra…
[题目描述]蒙特·卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的应用,其中就包括圆周率近似值的计问题.假设有一块边长为2的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点坐标(x,y)必然在木板上(更多的时候是落在单位圆内),如果扔的次数足够多,那么落在单位圆内的次数除以总次数再乘以4,这个数字会无限逼近圆周率的值.这就是蒙特·卡罗发明的用于计算圆周率近似值的方法,如下图所示.编写程序,模拟蒙特·卡罗计算圆周率近似值的方法,输入掷飞镖次数,然后输出圆周率近似值. […
背景 以前,很多网站使用轮询实现推送技术.轮询是在特定的的时间间隔(比如1秒),由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给浏览器.轮询的缺点很明显,浏览器需要不断的向服务器发出请求,然而HTTP请求的header是非常长 的,而实际传输的数据可能很小,这就造成了带宽和服务器资源的浪费. Comet使用了AJAX改进了轮询,可以实现双向通信.但是Comet依然需要发出请求,而且在Comet中,普遍采用了长链接,这也会大量消耗服务器带宽和资源. 于是,WebSocke…
#CalPi.py from random import random from math import sqrt from time import clock DARTS = 10000000 hits = 0.0 clock() for i in range(1, DARTS+1): x, y = random(), random() dist = sqrt(x ** 2 + y ** 2) if dist <= 1.0: hits = hits + 1 pi = 4.0 * (hits/D…
一.分支结构 单分支结构 if 一般用于判断选择 score = 95 if score > 90: print('优秀') 双分支结构 if...else age = 20 if age >= 18: print('成年') else: print('未成年') 三目运算 age = 19 print('成年') if age >=18 else print('未成年') # 只有双分支有这种写法 if...elif...elif...else 与 if...if...if...els…
一 背景 此算法诞生的背景是: 曼哈顿计划,有极大的计算需求. 计算机刚开始发展,最适合做计算. 蒙特卡洛算法理论基础是概率论,实际就是暴力计算逼近理想结果.正是在以上两个背景下,它刚好得到了极大的应用和发展. 二 概念 蒙特·卡罗算法,也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法.是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法.与它对应的是确定性算法.蒙特·卡罗方法在金融工程学,宏观经…
一.要求: 1.计算到圆周率后面越多位越好. 2.用进度条显示计算的进度. 3.要求给出圆周率Π的具体计算方法和解释. 二.算法: 1.拉马努金公式: 2.高斯-勒让德公式: 设置初始值: 反复执行以下步骤直到    与   之间的误差到达所需精度: 则π的近似值为: 下面给出前三个迭代结果(近似值精确到第一个错误的位数): 3.140... 3.14159264... 3.1415926535897932382... 该算法具有二阶收敛性,本质上说就是算法每执行一步正确位数就会加倍. 3.波尔…
Python实现计算圆周率π的值到任意位的方法示例 本文实例讲述了Python实现计算圆周率π的值到任意位的方法.分享给大家供大家参考,具体如下: 一.需求分析 输入想要计算到小数点后的位数,计算圆周率π的值. 二.算法:马青公式 π/4=4arctan1/5-arctan1/239 这个公式由英国天文学教授约翰·马青于1706年发现.他利用这个公式计算到了100位的圆周率.马青公式每计算一项可以得到1.4位的十进制精度.因为它的计算过程中被乘数和被除数都不大于长整数,所以可以很容易地在计算机上…
Python模拟登陆让不少人伤透脑筋,今天奉上一种万能登陆方法.你无须精通HTML,甚至也无须精通Python,但却能让你成功的进行模拟登陆.本文讲的是登陆所有网站的一种方法,并不局限于微博与知乎,仅用其作为例子来讲解. 用到的库有"selenium"和"requests".通过selenium进行模拟登陆,然后将Cookies传入requests,最终用requests进行网站的抓取.优点就是不但规避了"selenium"其本身抓取速度慢的问题…
1.蒙特卡洛求圆周率 向区域内随即撒点 当点的数目足够多时,落在圆的点数目与在正方形点数目成正比 即圆的面积和正方形的面积成正比 可以得出计算圆周率的算法 DARTS=100000000   hits=0.0   clock()   for i in range(1,DARTS+1):       x,y=random(),random()       dist=sqrt(x**2+y**2)       if dist <=1.0:           hits=hits+1   pi=4*(…
0-故事: 蒙特卡罗方法是计算模拟的基础,其名字来源于世界著名的赌城——摩纳哥的蒙特卡罗. 蒙特卡罗一词来源于意大利语,是为了纪念王子摩纳哥查理三世.蒙特卡罗(MonteCarlo)虽然是个赌城,但很小,估计跟北京的一条街差不多大. 其思想来源于著名的蒲丰投针问题(提出用投针实验的方法求圆周率π).而后20世纪40年代美国在第二次世界大战中研制原子弹的“曼哈顿计划”计划的成员S.M.乌拉姆和J.冯·诺伊曼(计算机之父)首先提出了这一方法. 蒲丰投针: 1777年法国科学家蒲丰提出了下述著名问题:…
Python之进度条及π的计算 文本进度条 1.  简单的开始 这是利用print()函数来实现简单的非刷新文本进度条.它的基本思想是按照任务执行百分比将整个任务划分为100个单位,每执行N%输出一次进度条. 为了模拟任务处理的时间效果,需要调用Python标准时间库time. 完整代码如下: import time scale=10 print("-----执行开始-----") for i in range(scale+1): a,b='**'*i,'..'*(scale-i) c…
蒙特·卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法.是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法.与它对应的是确定性算法. 这个方法的发展始于20世纪40年代,和原子弹制造的曼哈顿计划密切相关,当时的几个大牛,包括乌拉姆.冯.诺依曼.费米.费曼.Nicholas Metropolis,在美国洛斯阿拉莫斯国家实验室研究裂变物质的中子连锁反…
本节来说明一下 JavaScript 加密逻辑分析并利用 Python 模拟执行 JavaScript 实现数据爬取的过程.在这里以中国空气质量在线监测分析平台为例来进行分析,主要分析其加密逻辑及破解方法,并利用 PyExecJS 来实现 JavaScript 模拟执行来实现该网站的数据爬取. 反混淆 JavaScript 混淆之后,其实是有反混淆方法的,最简单的方法便是搜索在线反混淆网站,这里提供一个:http://www.bm8.com.cn/jsConfusion/,我们将 jquery-…
Python模拟数据(MySQL数据库) 数据模拟 目的:模拟多个表的插入和查询数据的模拟,再通过基准测试脚本测试服务器性能和收集数据,仿真模拟. 备注: 如果需要基础的python环境,可以查看<MySQL实验准备(一)--环境准备>文档 实验脚本 通过对一个简单表的脚本插入和查询模拟,后面能 举一反三,完成多张表的多表插入,多线程的多表插入,多线程查询,和多线程的join查询. 数据库的表结构 mysql> show create table zdemo.student; +----…
Python的生成器进阶玩法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.yield的表达式形式 #!/usr/bin/env python #_*_coding:utf-8_*_ #@author :yinzhengjie #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ #EMAIL:y…
本文从阐述Python实现客观赋权法的四种方式: 一. 熵权法 二. 因子分析权数法(FAM) 三. 主成分分析权数法(PCA) 四. 独立性权系数法 Python实现客观赋权法,在进行赋权前,先导入数据(列:各维属性:行:各样本),并自行进行去空值.归一化等操作. import pandas as pd import numpy as np data=pd.DataFrame(pd.read_excel('路径')) 一. 熵权法 若某个指标的信息熵越大(即离散程度越大),表明指标提供的信息量…
python图像处理二值化方法 1. opencv 简单阈值 cv2.threshold 2. opencv 自适应阈值 cv2.adaptiveThreshold 3. Otsu's 二值化 例子: 来自 : OpenCV-Python 中文教程 import cv2 import numpy as np from matplotlib import pyplot as plt img = cv2.imread('scratch.png', 0) # global thresholding r…
上篇介绍了新浪微博的登陆过程,这节使用Python编写一个模拟登陆的程序.讲解与程序如下: 1.主函数(WeiboMain.py): import urllib2 import cookielib import WeiboEncode import WeiboSearch if __name__ == '__main__': weiboLogin = WeiboLogin('×××@gmail.com', '××××')#邮箱(账号).密码 if weiboLogin.Login() == Tr…
python排序之二冒泡排序法 如果你理解之前的插入排序法那冒泡排序法就很容易理解,冒泡排序是两个两个以向后位移的方式比较大小在互换的过程好了不多了先上代码吧如下: 首先还是一个无序列表lis,老规矩打印出来和最后排序对比看,函数方法bubbie_sort冒泡排序,count计数也就是列表长度len(列表),第一个for循环取列表中的第一个值然后向后位移,第二个for循环取列表i+1也就是第二个值向后位移,这表是第二个for只会取第一个for后面的值好做比较,count长度一直15,如果两个不一…
最近由于某些原因,需要用到Python模拟登录网站,但是以前对这块并不了解,而且目标网站的登录方法较为复杂, 所以一下卡在这里了,于是我决定从简单的模拟开始,逐渐深入地研究下这块. 注:本文仅为交流学习所用. 登录特点:明文传输,有特殊标志数据 会话对象requests.Session能够跨请求地保持某些参数,比如cookies,即在同一个Session实例发出的所有请求都保持同一个cookies,而requests模块每次会自动处理cookies,这样就很方便地处理登录时的cookies问题.…
看到一Python例子,挺有意思的,用Python模拟C++的输出流OStream.单纯只是玩. 原理: 利用Python __lshift__左移内建函数<<,调用时将输出内容,如果内容为回车,则处理回车. 看例子^_^!!! #coding: utf-8 class IOManipulator(object): def __init__(self, function=None): self.function = function def do(self, output): self.fun…
用Python模拟登录网站 前面简单提到了 Python 模拟登录的程序,但是没写清楚,这里再补上一个带注释的 Python 模拟登录的示例程序.简单说一下流程:先用cookielib获取cookie,再用获取到的cookie,进入需要登录的网站. 01 #  -*- coding: utf-8 -*- 02 # !/usr/bin/python 03   04 import urllib2 05 import urllib 06 import cookielib 07 import re 08…
看web看多了,想写写页游的外挂,其实原理是一样的,就是端口不一样协议字段你不知道,而这也提高了点技术门槛,看我们来一点一点突破这些门槛,这次我们来用python发包模拟flash的客户端登陆. 以热血三国2为例,热血三国2是一款balabalaba自己查去吧的游戏. step1 : 在sg2.ledu.com注册个账户  略过...step2 : 登陆游戏,wireshark抓包分析    以双线784服为例,游戏页面地址http://s784.sg2.ledu.com/,现在游戏一般都是联运…
想用python模拟浏览器访问web的方法测试些东西,有哪几种方法呢? 一类:单纯的访问web,不解析其js,css等. 1. urllib2 #-*- coding:utf-8 -* import urllib2 def Furllib2(ip,port,url,timeout): proxydict = {} proxydict['http'] = "http://%s:%s"%(ip,port) print proxydict proxy_handler = urllib2.Pr…
CRC16是单片机程序中常用的一种校验算法.依据所采用多项式的不同,得到的结果也不相同.常用的多项式有CRC-16/IBM和CRC-16/CCITT等.本文代码采用的多项式为CRC-16/IBM: X16+X15+X2+1. 闲言少叙,下面是查表法计算CRC16的代码: /******************************************************************************* * Copyright (c) 2012 ICPUB.NET. A…
使用Python模拟二叉树的基本操作,感觉写起来很别扭.最近做编译的优化,觉得拓扑排序这种东西比较强多.近期刷ACM,发现STL不会用实在太伤了.决定花点儿时间学习一下STL.Boost其实也很强大.关于Python最近没什么时间搞了,忙着复试了.不过,挺喜欢这语言的.复试完继续大战PythonChallenge. #! /usr/bin/env python # DataStrucure Tree import sys class BTNode: def __init__(self, data…
用Python模拟栈和队列主要是利用List,当然也可以使用collection的deque.以下内容为栈: #! /usr/bin/env python # DataStructure Stack class Stack: def __init__(self, data=None): if data is not None: self.stk = [data] self.top = 0 else: self.stk = [] self.top = -1 def __str__(self): r…
Python模拟键盘输入和鼠标操作 一.Python键盘输入模拟: import win32api import win32con win32api.keybd_event(17,0,0,0)  #ctrl键位码是17 win32api.keybd_event(86,0,0,0)  #v键位码是86 win32api.keybd_event(86,0,win32con.KEYEVENTF_KEYUP,0) #释放按键 win32api.keybd_event(17,0,win32con.KEYE…
使用Python,字标注及最大熵法进行中文分词 在前面的博文中使用python实现了基于词典及匹配的中文分词,这里介绍另外一种方法, 这种方法基于字标注法,并且基于最大熵法,使用机器学习方法进行训练,将训练出的模型 用于中文分词,效果优于基于词典及匹配的分词方法. Table of Contents 1 背景知识 2 分词思想 2.1 以字分词 2.2 机器学习 3 实验及代码 3.1 数据来源 3.2 各部分数据示例 3.3 各部分代码示例 1 背景知识 2002年以前,自动分词方法基本上基于…