遗传算法python实现
前言上课学的基础遗传算法,我用python实现了一遍。选择算法使用轮盘赌博基因交叉每次一位基因变异每次一位
算法效果不是很好,有大佬熟悉的话感谢留言指导一下。
题目求解函数的最大值y=xsin(10x)+xsin(2x),自变量取值:0–5函数图像:
代码'''作者:LP时间:2022年3月24日介绍:遗传算法参考:https://blog.csdn.net/weixin_42053726/article/details/82722758题目:y=xsin(10x)+xsin(2x),自变量取值:0-5'''import numpy as npdef gene_len(len, accu): ''' 基因长度计算 参数: len 区间长度(整型) accu 精确度(精确到小数点后多少位) 返回值: 二进制长度 ''' temp = len * (10 ** accu) # print(tem ...
腾讯云+Picgo搭建图床
前言之前用的遇见图床,很多图片链接资源被清除。辛辛苦苦写的博客啊,图床一挂什么图片都没了。图床还是自己建一个靠谱。几天前折腾了一下七牛云,10G免费存储空间,看似不错。结果我的站点是https,免费的七牛云只提供http,导致上传了图片在浏览器里加载不出来。果断选择付费的,现在每个平台的oss价格都不贵,我的服务器用的腾讯云,所以图床用腾讯云的COS,这样内网访问可以节省流量。接下来介绍搭建方法。
腾讯云cos打开腾讯云注册帐号、实名认证、获取cos的免费存储…
创建存储桶创建存储桶(存储同bucket可以理解为存东西的空间):按照官方的说明配置就行了
访问权限这里因为是博客图床,我选择公有读私有写,最后一行这里腾讯云会提供一个免费的https链接我们可以用这个链接访问到图传的图片(或者你用域名解析到这个链接也可以)
后面的看着选,不懂得可以读一下文档,写的很清楚。这样一个图床就建好了。
picgo需要用的参数picgo需要用的参数位置先展示给大家看一下:空间名和区域:点击进入下图中的访问密钥,然后新建密钥即可获得APPID、SecretId和SecretKey
PicGo下 ...
将hexo配置到个人服务器 nginx配置https
hexo配置到github国内访问不用梯子上不去,一直想把博客放到自己的服务器上,这样baidu也可以收录。接下来介绍一下配置过程。
环境云服务器 ubuntu20.04本地主机装好hexo(不会的可以看下我之前关于hexo的文章)
将hexo配置到个人服务器安装git和nginx以下操作建立在 root 权限之下,如权限不足请申请 root 权限或采用 sudo 关键字。
apt-get updateapt-get install git nginx -y
安装完成后新建一个文件路径来存放我们的git仓库并初始化仓库:
mkdir /var/repo/cd /var/repogit init --bare {自定义仓库名name}.git
配置 Nginx 托管文件目录创建一个新的www目录(如果想使用默认的可以跳过这一小节)
mkdir -p /var/www/hexo
修改 Nginx 的 default 文件使得 root 指向刚刚创建的 /var/www/hexo目录:
vim /etc/nginx/sit ...
异步编程与多线程的区别
异步编程与多线程的区别共同点:
异步和多线程两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性
不同点:
线程不是一个计算机硬件的功能,而是操作系统提供的一种逻辑功能,线程本质上是进程中一段并发运行的代码,所以线程需要操作系统投入CPU资源来运行和调度。
多线程的优点很明显,线程中的处理程序依然是顺序执行,符合普通人的思维习惯,所以编程简单。但是多线程的缺点也同样明显,线程的使用(滥用)会给系统带来上下文切换的额外负担。并且线程间的共享变量可能造成死锁的出现
异步操作无须额外的线程负担,并且使用回调的方式进行处理,在设计良好的情况下,处理函数可以不必使用共享变量(即使无法完全不用,最起码可以减少 共享变量的数量),减少了死锁的可能。 当然异步操作也并非完美无暇。编写异步操作的复杂程度较高,程序主要使用回调方式进行处理,与普通人的思维方式有些出入,而且难以调试。
这里有一个疑问。异步操作没有创建新的线程,我们一定会想,比如有一个文件操作,大量数据从硬盘上读取,若使用单线程的同步操作自然要等待会很长时间,但是若使用异步操作的话,我 ...
apache2配置ssl证书使用https,反向代理
证书申请过程这里不介绍,apache证书文件包含以下:
1_root_bundle.crt # 证书文件2_xxx.xxx.xxx.crt # 证书文件3_xxx.xxx.xxx.key # 私钥文件
配置证书在这里,我假设你已经会配置基本的/etc/apache2/sites-available/000-default.conf这个文件来达到已经可以通过 http 的方式来访问你的站点。
编辑/etc/apache2/sites-available/default-ssl.conf添加如下配置:
SSLEngine onServerName www.domain.comSSLCertificateChainFile /etc/apache2/ssl/2_xxx.xxx.xxx.crtSSLCertificateKeyFile /etc/apache2/ssl/3_xxx.xxx.xxx.keySSLCertificateFile /etc/apache2/ssl/1_root_bundle.crt
http自动跳转至https在/etc/apache2/sites-avail ...
coturn服务器搭建及踩坑
安装coturn安装之前,先确保使用以下命令将apt-get更新到最新:
sudo apt-get update
安装coturn:
sudo apt-get install coturn
请确保使用以下命令在安装软件包后停止该服务, 因为安装完成后它将自动启动:
systemctl stop coturn
生成证书文件sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes
备份并创建配置文件安装好coturn后会在/etc目录下创建turnserver.conf首先备份:
# copy the original turnserver configuration file to a backup in the same directorycp /etc/turnserver.conf /etc/turnserver.conf.original
用编辑器编辑turnserver.conf: ...
电容器件选型
电容参数描述
电容
陶瓷
容值
电压
类型
封装
CAP
CER
0.1UF
16V
Y5V
0402
CAP
TANT
1UF
10%
10V
1206
CAP
CER
0.1UF
16V
Y5V
0402
电容参数特性(1)容量和误差:实际电容量和标称电容量允许的最大偏差范围。在选型上注意精度等级,用字母表示:D——±0.5%,F——±1%,G——±2%,J——±5 % ,K——±10%,M——±20%。(2)额定工作电压:电容器在电路中能够长期稳定、可靠工作,所承受的最大直流电压。(3)绝缘电阻:表示漏电大小,一般绝缘电阻越大越好,漏电也小电解电容的绝缘电阻一般较小。(4)正切角损耗:在电场的作用下,电容器在单位时间内发热而消耗的能量。(5)温度系数:在一定温度范围内,温度每变化1℃,电容量的相对变化值。温度系数越小越好。(6)频率特性:电容器的电参数随电场频率而变化的性质。在高频条件下工作的电容器,由于介电常数在高频时比低频时小,电容量也相应减小。损耗也随频率的升高而增加。(7)等效串联电阻(ESR):损耗较大产品的ESR较大;随着容量的增大,产品的ESR ...
电阻器件选型
电阻器件选型电阻介绍分类
薄膜电阻:碳膜电阻、合成碳膜电阻、尽速氧化膜电阻…
绕线电阻:通用绕线电阻、功率绕线电阻、高频线绕线电阻…
实心电阻: 无机合成实心碳质电阻和有机…
特种电阻:湿敏电阻、热敏电阻、压敏电阻、光敏电阻、磁敏电阻、力敏电阻、气敏电阻。
常用为金属膜电阻(直插),金属玻璃铀电阻(贴片)
电阻描述示例:
电阻
贴片
阻值
精度
精度
功率
封装
RES
SMD
22K
OHM
1%
1/16W
0402
RES
SMD
22K
OHM
1%
1/16W
0402
选型要点
电阻的阻值满足应用电路使用。
电阻的额定功率大于电阻在应用电路实际工作功率。一般按额定功率70%降额设计选用。
电阻在应用电路中实际工作电压小于最大工作电压。一般按最高工作电压的75%降额设计选用。
电阻的稳定性、工作频率、噪声等特性满足应用电路要求。
阻值的表示标称阻值的表示方法采用GB/T2471中的E24、E48、E96、E192系列。
E24:三位数字表述。前两位表示有效数字,第三位表示0的个数。
E96:四位字符表述。前三位表示有 ...
Github使用流程
记录一下github每次使用中需要进行的操作:
Github流程创建新仓库并上传
首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库:
在Repository name填入learngit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:
如果本地没有创建仓库,先在本地运行:
git init
现在,我们根据GitHub的提示,在本地的learngit仓库下运行命令:
$ git remote add origin git@github.com:[username]/learngit.git
username的地方填你的用户名,远程库的名字是origin,这是Git默认的叫法。
本地添加git文件,添加缓存区并提交:
git addgit commit
下一步,就可以把本地库的所有内容推送到远程库上:
$ git push -u origin master
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。由于远程库是空的,我 ...
mosquitto(MQTT)ubuntu搭建教程
Mosquitto是一款实现了 MQTT v3.1 协议的开源消息代理软件,包括了服务器端和客户端,可以跨平台部署,提供轻量级的,支持发布/订阅的的消息推送模式,使设备对设备之间的短消息通信简单易用。以下是在Ubuntu环境下,本地搭建MQTT服务器和客户端
安装mosquitto引入mosquitto仓库并更新sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppasudo apt-get update
安装mosquitto服务器和客户端sudo apt-get install mosquitto #服务端sudo apt-get install mosquitto-clients #客户端(想在windows下测试可以下一个chrome的mqttbox插件)
开启/停止mosquitto服务sudo service mosquitto startsudo service mosquitto stop
查看mosquitto服务状态sudo service mosquitto status
成功 ...