什么是粒子群算法粒子群算法,也称粒子群优化算法或鸟群觅食算法(ParticleSwarmOptimization,PSO)。由J.Kennedy和R.C.Eberhart等人于1995年提出。其属于进化算法的一种,也是从随机解出发,通过迭代寻找最优解,其通过适应度来评价解的品质。这种算法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性。求解过程PSO通过模拟鸟群的捕食行为完成最优解的求取。假设一群鸟在一个空间捕捉食物
系统 2019-09-27 17:52:21 2021
译注:这是一篇在Stackoverflow上很热的帖子。提问者自称已经掌握了有关PythonOOP编程中的各种概念,但始终觉得元类(metaclass)难以理解。他知道这肯定和自省有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理解,以及在什么情况下需要进行元编程。于是e-satis同学给出了神一般的回复,该回复获得了985点的赞同点数,更有人评论说这段回复应该加入到Python的官方文档中去。而e-satis同学本人在StackO
系统 2019-09-27 17:52:16 2021
整个排序算法分两部分来总结,这篇总结第一部分一些相对简单和常用的排序算法,包括冒泡排序、选择排序、插入排序和希尔排序。冒泡排序冒泡排序应该是大家接触的最早的排序方法了,理解起来也十分简单。冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。算法描述比较相邻的
系统 2019-09-27 17:52:14 2021
-re.I#忽略大小写-re.M#多行匹配,将正则作用到源数据的每一行-re.S#单行匹配,将正则作用到整个源数据,输出一个整体字符串(包括换行符也打印)string='''fallinlovewithyouiloveyouverymuchilovesheiloveher'''#去除以i开头的每一行数据re.findall('^i.*',string,re.M)['iloveyouverymuch','iloveshe','iloveher']#匹配全部行
系统 2019-09-27 17:51:20 2021
zip在python3中,处于优化内存的考虑,只能访问一次!!!(python2中可以访问多次),童鞋们一定要注意,*coding:utf-8*zip()函数的定义:从参数中的多个迭代器取元素组合成一个新的迭代器;返回:返回一个zip对象,其内部元素为元组;可以转化为列表或元组;传入参数:元组、列表、字典等迭代器。当zip()函数中只有一个参数时,zip(iterable)从iterable中依次取一个元组,组成一个元组。在python3.0中有个大坑,z
系统 2019-09-27 17:50:58 2021
基本原理蒙特卡罗方法通过抓住事物运动的几何数量和几何特征,利用数字方法来加以模拟,即进行一种数字模拟实验。它是以一个概率模型为基础,按照这个模型所描绘的过程,通过模拟实验的结果,作为问题的近似解。主要步骤如下:1.构造或描述概率过程2.实现从已知概率分布抽样3.建立各种估计量示例一:π值的计算importnumpyasnpimportpandasaspdimportmatplotlib.pyplotasplt%matplotlibinline#π的计算n=
系统 2019-09-27 17:50:56 2021
本文实例讲述了Python使用微信itchat接口实现查看自己微信的信息功能。分享给大家供大家参考,具体如下:itchat是python的一个api,可以访问自己的微信信息,功能还蛮好玩的,可以扒取朋友信息,自动回复短信等等。package:itchat1.3.10+python3.5+wordcloud1.4.1登录登出:itchat.login()#hotReload设置为True,可以保持一段时间登录itchat.autologin(hotReloa
系统 2019-09-27 17:50:35 2021
今天我们来到了循环队列这一节,之前的文章中,我介绍过了用python自带的列表来实现队列,这是最简单的实现方法。但是,我们都知道,在列表中删除第一个元素和删除最后一个元素花费的时间代价是不一样的,删除列表的第一个元素,那么在它之后的所有元素都要进行移动。所以当列表特别长的时候,这个代价就比较明显了。我们本文介绍的循环队列可以避免这个问题,同样我们上篇文章提到的用链表实现的方法也可以避免。下面,我们来介绍循环队列。循坏队列循环队列,就是将普通的队列首尾连接起
系统 2019-09-27 17:50:25 2021
一、操作系统中相关进程的知识Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。子进程永远返回0,而父进程返回子进程的ID。这样做的理由是,一个父进程可以fork出很多子进程,所以,父进程要记下每个子进程的ID,而子进程只需要调用getppid()就可以拿到父进程的I
系统 2019-09-27 17:50:08 2021
#输出字典d1的键值和键值个数d1={'x':1,'y':2,'z':3}d1={'x':1,'y':2,'z':3}keylist=d1.keys()whilekeylist:print(keylist(0))keylist.pop(0)else:print(len(d))报错:TypeError:'dict_keys'objectisnotcallablehttps://stackoverflow.com/questions/17322668/type
系统 2019-09-27 17:48:32 2021