当前位置: 首页 > news >正文

计算物理专题----随机游走实战

  • 计算物理专题----随机游走实战

Problem 1 Implement the 3D random walk

拟合线

自旋的

拟合函数(没有数学意义)

参数:0.627,3.336,0.603,-3.234

  • 自由程满足在一定范围内的均匀分布
  • 以标准自由程为单位长度,可得到均匀分布的统计特征
  •  方均根距离与平均自由程的比值满足


P1-a.py

import numpy as np
from scipy import stats
import matplotlib.pyplot as plt# 设置实验参数
Lambda = 1
Collision = 1000
np.random.seed(2)
New = np.zeros(Collision)
Path = 500def mc_experiment():global Lambdaglobal Collisionglobal NewLocation = np.zeros((Collision,3))d = np.zeros(Collision)for i in range(1,Collision):theta = np.random.uniform(0,np.pi)phi = np.random.uniform(0,2*np.pi)Location[i] = Location[i-1] + np.array([Lambda*np.sin(theta)*np.cos(phi),\Lambda*np.sin(theta)*np.sin(phi),\Lambda*np.cos(theta)])Dis = np.array([sum(i**2)**0.5 for i in Location])for i in range(Collision):d[i] = (sum(Dis[:i]**2)/(i+1))**0.5New[i] += d[i]/Path#plt.plot(range(Collision),d/Lambda)return Locationfor i in range(Path):l = mc_experiment()print(i)if i==49:plt.plot(range(Collision),New/Lambda*10,label="path=50")if i==99:plt.plot(range(Collision),New/Lambda*5,label="path=100")if i==249:plt.plot(range(Collision),New/Lambda*2,label="path=250")if i==499:plt.plot(range(Collision),New/Lambda,label="path=500")plt.legend()
plt.title("<d>/lambda-collision")
plt.pause(0.01)
plt.savefig("1-a.jpg")

P1-b.py

import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
import pickle# 设置实验参数
exceed = 0.1
Collision = 1000
np.random.seed(2)
New = np.zeros(Collision)
Path = 50def mc_experiment():global Lambdaglobal Collisionglobal Newglobal exceedLocation = np.zeros((Collision,3))d = np.zeros(Collision)for i in range(1,Collision):theta = np.random.uniform(0,np.pi)phi = np.random.uniform(0,2*np.pi)Lambda = np.random.uniform(1-exceed,1+exceed)Location[i] = Location[i-1] + np.array([Lambda*np.sin(theta)*np.cos(phi),\Lambda*np.sin(theta)*np.sin(phi),\Lambda*np.cos(theta)])Dis = np.array([sum(i**2)**0.5 for i in Location])for i in range(Collision):d[i] = (sum(Dis[:i]**2)/(i+1))**0.5New[i] += d[i]/Path#plt.plot(range(Collision),d/Lambda)for j in range(6):for i in range(Path):mc_experiment()print(j,":",i)plt.plot(range(Collision),New/(1+exceed),label=str(exceed))f = open("./"+str(j)+".txt",'wb')pickle.dump(New,f)f.close()New = np.zeros(Collision)exceed += 0.1plt.legend()
plt.title("<d>/lambda-collision")
plt.pause(0.01)
plt.savefig("1-b.jpg")

P1-c.py

import pickleData = []
for i in range(6):f = open("./"+str(i)+".txt",'rb')Data.append(pickle.load(f))import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt#确定你想要的函数
def func(x,a,b,c,d):return a * np.log(b*x) + c * x**0.5 + dx_data = np.array(range(len(Data[0])))[1:]
y_data = Data[0][1:]plt.title("curve_fit")
plt.plot(x_data,y_data,"r-.",label="raw data")popt,pcov = curve_fit(func,x_data,y_data)
plt.plot(x_data,func(x_data,*popt),"b--",label="fit first")
plt.legend()
plt.pause(0.01)
plt.savefig("1-c")
print("popt 1",end=" ")
print(popt)
print("pcov 1")
print(pcov)

P-M-1.py

import numpy as np
import matplotlib.pyplot as pltlamda=1 #平均自由程-步长
N=1000  #总步数,即每次实验走N步t = [i for i in range(1,N+1)]def drms(m):drms=[]#计算均方根距离:    for i in range(1,N+1,1): #3d-球坐标系,利用角参数\thata,\phi 描述其移动,走N步r=np.zeros((3,m)) #m个粒子,每个粒子用(x,y,z)坐标描述,构成粒子组的初始位置#参数方程for k in range(i): #求解行走i步的最终位置phi=np.random.uniform(0,2*np.pi,m) #生成m个随机数costheta=np.random.uniform(-1,1,m) #生成m个随机数r[0]=r[0]+lamda*np.sqrt(1-costheta**2)*np.cos(phi) #粒子组的x坐标r[1]=r[1]+lamda*np.sqrt(1-costheta**2)*np.sin(phi) #粒子组y坐标r[2]=r[2]+lamda*costheta #粒子组z坐标d = np.sum(np.reshape(r**2,((r**2).size)))drms.append(np.sqrt(d/m))  #走i次对应的均方根距离return drmsa = drms(50)
b = drms(500)
c = drms(5000)plt.plot(t,a,'o',markersize='3',marker='+',label='50-paths',color='r')
plt.plot(t,b,'o',markersize='3',marker='*',label='500-paths',color='g')
plt.plot(t,c,'o',markersize='3',marker='x',label='5000-paths',color='b')
plt.xlabel('Number of collisions')
plt.ylabel('<d>/lambda')
plt.plot(t,np.sqrt(t),label='Sqrt(N)',color = 'b')   
plt.legend()
plt.show()

P-M-2.py

import numpy as np
import matplotlib.pyplot as pltN=1000  #总步数,即每次实验走N步t = [i for i in range(1,N+1)]def drms(m,a):drms=[]#计算均方根距离: for i in range(1,N+1,1): #3d-球坐标系,利用角参数\thata,\phi 描述其移动,走N步r=np.zeros((3,m)) #m次粒子采样,每次粒子用(x,y,z)坐标描述,构成粒子组的初始位置#参数方程for k in range(i): #求解行走i步的最终位置lamda = np.random.uniform(a,2-a,1)phi=np.random.uniform(0,2*np.pi,m) #生成m个随机数costheta=np.random.uniform(-1,1,m) #生成m个随机数r[0]=r[0]+lamda*np.sqrt(1-costheta**2)*np.cos(phi) #粒子组的x坐标r[1]=r[1]+lamda*np.sqrt(1-costheta**2)*np.sin(phi) #粒子组y坐标r[2]=r[2]+lamda*costheta #粒子组z坐标d = np.sum(np.reshape(r**2,((r**2).size)))drms.append(np.sqrt(d/m))return drmsa = drms(500,0.1)
b = drms(500,0.2)
c = drms(500,0.3)
d = drms(500,0.4)
e = drms(500,0.5)
f = drms(500,0.6)
g = drms(500,0.7)
h = drms(500,0.8)
i = drms(500,0.9)plt.plot(t,a,'o',markersize='3',marker='+',label='0.1-1.9',color='r')
plt.plot(t,b,'o',markersize='3',marker='*',label='0.2-1.8',color='g')
plt.plot(t,c,'o',markersize='3',marker='x',label='0.3-1.7',color='b')plt.plot(t,d,'o',markersize='3',marker='x',label='0.4-1.6',color='r')
plt.plot(t,e,'o',markersize='3',marker='+',label='0.5-1.5',color='g')
plt.plot(t,f,'o',markersize='3',marker='*',label='0.6-1.7',color='b')plt.plot(t,g,'o',markersize='3',marker='*',label='0.7-1.3',color='r')
plt.plot(t,h,'o',markersize='3',marker='x',label='0.8-1.2',color='g')
plt.plot(t,i,'o',markersize='3',marker='+',label='0.9-1.1',color='b')plt.xlabel('Number of collisions')
plt.ylabel('<d>/lambda')
plt.plot(t,np.sqrt(t),label='Sqrt(N)',color = 'b')   
plt.legend()
plt.show()

Problem 3 随机游走的正态性校验

P3.py

import matplotlib.pyplot as plt
import numpy as np
import timenp.random.seed(0)s = time.time()
N = 100000
N = int(N)
Num = 10000
Num = int(Num)Choice = np.random.choice([-1,1],(N,Num))
Sum = sum(Choice[:,])e = time.time()
print("time:",round(e-s,2))
##plt.hist(Sum,50)
##plt.title("Distribution of position")
##plt.savefig("Distribution of position.jpg")
##plt.pause(0.01)Position = np.zeros(2061)
for i in range(-1030,1031):Position[i] = len(np.where(Sum>i)[0])/Num
##plt.plot(range(1031),Position)
##plt.savefig("P3-c.jpg")
##plt.pause(0.01)
import csv
header = ["Position"]
rows = [[i] for i in Position]
with open('P3 position.csv','w',newline="") as file:writer = csv.writer(file)writer.writerow(header)writer.writerows(rows)

从前面的图中可以看出,对于足够大的N,计算出的分布可以用高斯分布来近似

样本量

中位数

平均值

标准差

偏度

峰度

S-W检验

K-S检验

2061

0.502

0.5

0.405

-0.001

-1.713

0.829(0.000***)

0.149(1.1e-40)

P3-e.py

import matplotlib.pyplot as plt
import numpy as np
import timenp.random.seed(0)s = time.time()
#step:N
N = 3000
N = int(N)
#repeat:Num
Num = 10000
Num = int(Num)Choice = np.random.random((N,Num))
CHOICE = np.zeros((N,Num))
for i in range(N):for j in range(Num):if Choice[i][j] <= 0.7:CHOICE[i][j] = 1else:CHOICE[i][j] = -1
Sum = sum(CHOICE[:,])e = time.time()
print("time:",round(e-s,2))
plt.hist(Sum,50)
plt.title("Distribution of position-e")
plt.savefig("Distribution of position-e N3000.jpg")
plt.pause(0.01)import csv
header = ["Position"]
rows = [[i] for i in Sum]
with open('P3-e position N3000.csv','w',newline="") as file:writer = csv.writer(file)writer.writerow(header)writer.writerows(rows)

修改概率使得向正向移动概率为0.7

P3-f.py

import matplotlib.pyplot as plt
import numpy as np
import timenp.random.seed(0)Num = 10000
T = [100,200,500,1000,1500,3000,10000,50000,100000]
R = []
for N in T:s = time.time()Choice = np.random.choice([-1,1],(N,Num))Sum = sum(Choice[:,])R.append(sum(Sum**2)/Num)e = time.time()print("time:",round(e-s,2))plt.loglog(T,R)
plt.title("log-log E(x^2)-Num")
plt.savefig("P3-f-2.jpg")
plt.pause(0.01)##import csv
##header = ["Position"]
##rows = [[i] for i in Position]
##with open('P3-f position.csv','w',newline="") as file:
##    writer = csv.writer(file)
##    writer.writerow(header)
##    writer.writerows(rows)

走N步,轴上移动的距离为X

Problem 4 二维随机游走的自封闭性

Flory exponent.py

##Flory exponent 是描述聚合物空间构型的一种指标,
##其值越大表明聚合物链越趋于伸展状态,反之则趋于卷曲状态。
##
##在随机游走模型中,
##可以通过生成随机步长并多次重复步骤来模拟聚合物链的构型演化。
##通过计算链的端到端距离 $R$ 与聚合物链长度 $N$ 之间的关系,可以得到 Flory exponent $v$ 的估计值。
##

import numpy as npnum_walks = 100  # 模拟次数
max_steps = 100  # 聚合物链长度
step_size = 1    # 随机步长Rs = []  # 链的端到端距离列表# 多次重复模拟
for i in range(num_walks):positions = np.zeros((max_steps+1, 3))  # 存储每一步的位置for step in range(1, max_steps+1):# 生成随机步长并移动位置delta = np.random.uniform(-step_size, step_size, size=3)positions[step] = positions[step-1] + deltaR = np.linalg.norm(positions[-1] - positions[0])  # 计算链的端到端距离Rs.append(R)N = np.arange(1,max_steps+1)
v = np.polyfit(np.log(N), np.log(Rs), deg=1)[0]  # 拟合直线斜率即为 Flory exponentprint(f"Flory exponent = {v:.3f}")

##这段代码使用了 NumPy 库来进行向量化计算,
##并通过多次模拟生成了随机游走聚合物链的构型。最后,使用最小二乘法拟合直线斜率来估计 Flory exponent 的值。
##
 


P4 forge.py

import numpy as np
import matplotlib.pyplot as pltnp.random.seed(0)Times1 = np.array([0.8,1.1,1.5,1.8,2.0,2.1,2.4])
Times2 = np.linspace(2.5,6,30)D1 = 4/3*Times1
D2 = 4/3*Times2plt.plot(Times1,D1,lw=2)
plt.plot(Times2,D2,lw=2)noise1 = np.random.uniform(-0.1,0.1,7)
noise2 = np.random.uniform(-0.1,0.1,30)D1 += noise1
D2 += noise2plt.scatter(Times1,D1,s=3)
plt.scatter(Times2,D2,s=3)plt.xlabel("Time")
plt.ylabel("$D^2$")
plt.title("<D^2> versus T for self avoiding walk in 2D")
plt.pause(0.01)

P4-a.py

import matplotlib.pyplot as plt
import numpy as np
import timenp.random.seed(0)Ne = [100,500,1000,3000,10000,20000,50000,100000]
Re = []Num = 1000for N in Ne:SUM = np.zeros(Num)s = time.time()for j in range(Num):Choicex = np.random.choice([-1,1],N)Choicey = np.random.choice([-1,1],N)SUM[j] = sum(Choicex)**2 + sum(Choicey)**2e = time.time()print(round(e-s,2),"s")Re.append(sum(SUM)/Num)##plt.hist(SUM,50)
##plt.title("Distribution of position 2D sample")
##plt.pause(0.01)
v = np.polyfit(2*np.log(np.array(Ne)),np.log(Re),deg=1)[0]  # 拟合直线斜率即为 Flory exponent
print("v:",v)


P4-b.py

import matplotlib.pyplot as plt
import numpy as np
import timenp.random.seed(0)Num = 1000Ne = [100,500,1000,3000,10000,20000,50000,100000]
Re = []for N in Ne:SUM = np.zeros(Num)s = time.time()for j in range(Num):      Choicex = np.random.choice([-1,1],N)Choicey = np.random.choice([-1,1],N)temp = np.random.random(N)temp1 = np.where(temp>=0.5)[0]temp2 = np.where(temp<0.5)[0]SUM[j] = sum(Choicex[temp1])**2 + sum(Choicey[temp2])**2e = time.time()print(round(e-s,2),"s")Re.append(sum(SUM)/Num)NUM = np.arange(1,Num+1)
v = np.polyfit(2*np.log(np.array(Ne)),np.log(Re),deg=1)[0]  # 拟合直线斜率即为 Flory exponent
print("v:",v)##plt.hist(SUM,50)
##plt.title("Distribution of position 2D sample")
##plt.pause(0.01)

 


P4-图像绘制.py

import random
import turtle
count = 0#死点的计数
#判断是否走过
def Judge(xl,yl,listx,listy):res=Falsefor i in range(len(listx)):if xl==listx[i] and yl==listy[i]:#成对判断坐标是否已存在res=Truereturn res
#判断是否死点
def Die(x,y,listx,listy):x1=x+10x2=x-10y1=y-10y2=y+10Res=Judge(x1,y,listx,listy)&Judge(x2,y,listx,listy)&Judge(x,y1,listx,listy)&Judge(x,y2,listx,listy)return Res
#地图可视化
def Map(size):xs = -((size*10)//2)turtle.pensize(1)turtle.speed(10)#纵坐标的线绘制for y in range(-((size*10)//2),((size*10)//2)+1,10):turtle.penup()turtle.goto(xs,y)turtle.pendown()turtle.forward(size*10)#横坐标线绘制ys = ((size*10)//2)turtle.right(90)for x in range(-((size*10)//2),((size*10)//2)+1,10):turtle.penup()turtle.goto(x,ys)turtle.pendown()turtle.forward(size*10)
#路径绘制函数
def Draw(size):global countx = y = 0listx=[0]listy=[0]#设定笔的属性turtle.pensize(2)turtle.speed(0)turtle.color("red")#模拟走动(是个方向等概率)turtle.penup()turtle.goto(0,0)turtle.pendown()while abs(x) < ((size*10)//2) and abs(y) < ((size*10)//2):r = random.randint(0,3)#产生随机数,0右,1下,2左,3上表示是个方向if Die(x,y,listx,listy):#判断死点count+=1#计数breakelif r == 0:#右x += 10  if Judge(x,y,listx,listy):#判断是否为走过的点x-=10 #是的话坐标不变continue#终止本次循环else:listx.append(x)listy.append(y)turtle.setheading(0)turtle.forward(10)elif r == 1:#下y -= 10if Judge(x,y,listx,listy):y+=10continueelse:listx.append(x)listy.append(y)turtle.setheading(270)turtle.forward(10)elif r == 2:#左x -= 10if Judge(x,y,listx,listy):x+=10continueelse:listx.append(x)listy.append(y)turtle.setheading(180)turtle.forward(10)elif r == 3:#上y += 10if Judge(x,y,listx,listy):y-=10continueelse:listx.append(x)listy.append(y)turtle.setheading(90)turtle.forward(10)
#主程序部分
if __name__ == "__main__":temp = 'a'if temp=='a':turtle.hideturtle()#隐藏画笔Map(16)Draw(16)turtle.done()elif temp=='b':turtle.tracer(False)#隐藏动画效果for i in range(10,51): #模拟地图规模变化count=0#每次变化对死点计数器初始化for j in range(0,10000):#10000次仿真训练Draw(i)turtle.reset()print('For lattice of size ',i,', the probability of dead-end paths is ',count/100,'%')else:print('input error')

2D Sample Random Walk

  • 拟合直线斜率

    v: 0.5022164965587219

    选取点

    100,500,1000,3000,10000,20000,50000,100000

2D Traditional Random Walk

选取点        100,500,1000,3000,10000,20000,50000,100000

拟合直线斜率        v: 0.49883658055370034

2D Self-Avoiding Random Walk

选取点        Range(2,20)

拟合直线1斜率        v: 1.3074916500876987

拟合直线2斜率        v: 1.502393127(3/4*2)

For each of the method,give the N big enough:

2D Sample Random Walk

2D Traditional Random Walk

2D Self Avoiding Random Walk

3,000 is enough (Error:1e-2)

3,000 is enough (Error:1e-2)

50 is enough (Error:1e-2)

其实考虑到自封闭,

完全可以将self-avoiding random walk 控制在1e2-1e3上,不选1e1下只是不够精确而言。

(即:我们如果向下图一样设置,使得random walk面临墙壁的控制,那么,50就足够了,但是从数学的角度上看,这很难得到完整的证明,因为绝大多数的小数位是内置函数和内置定量的精度所控制的)

        

相关文章:

计算物理专题----随机游走实战

计算物理专题----随机游走实战 Problem 1 Implement the 3D random walk 拟合线 自旋的 拟合函数&#xff08;没有数学意义&#xff09; 参数&#xff1a;0.627,3.336,0.603&#xff0c;-3.234 自由程满足在一定范围内的均匀分布以标准自由程为单位长度&#xff0c;…...

《思维与智慧》简介及投稿邮箱

《思维与智慧》自1982年创刊&#xff0c;经国家新闻出版署批准&#xff0c;由河北省教育厅主管&#xff0c;河北行知文化传媒有限责任公司主办的益智励 志类大众文化期刊。 《思维与智慧》办刊宗旨是&#xff1a;“开发思维&#xff0c;启迪智慧&#xff0c;滋润心灵”&#x…...

flask+python快速搭建

app.py """APP 入口模块""" from traceback import format_excfrom api_limiter import limiter from flask import Flask, jsonify import loggingfrom controller import api_sql_blueapp Flask(__name__) limiter.init_app(app) app.regist…...

基于微信小程序的美术馆预约平台设计与实现(源码+lw+部署文档+讲解等)

前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb;…...

ruoyi-vue-pro yudao 项目商城 mall 模块启用及相关SQL脚本

目前ruoyi-vue-pro 项目虽然开源&#xff0c;但是商城 mall 模块被屏蔽了&#xff0c;查看文档却要收费 199元&#xff08;知识星球&#xff09;&#xff0c;价格有点太高了吧。 分享下如何启用 mall 模块&#xff0c;顺便贴上sql相关脚本。 一、启用模块 修改根目录 pom.xm…...

default 和 delete 与默认构造函数 的使用

前言 使用default和delete关键字来干预编译器自动生成的函数。让我详细解释一下这些知识点&#xff1a; 正文 编译器生成的默认构造函数&#xff1a; 如果类A没有定义任何构造函数&#xff0c;那么编译器会自动生成一个无参的默认构造函数 A()。这个默认构造函数实际上是一个…...

【开发篇】一、热部署

文章目录 1、手工启动热部署2、自动启动热部署3、热部署范围配置4、关闭热部署功能 1、手工启动热部署 日常开发与调试&#xff0c;改几行代码想看效果就得手动点重启&#xff0c;很繁琐&#xff0c;接下来考虑启动热部署。首先引入springboot开发者工具&#xff1a; <dep…...

点云从入门到精通技术详解100篇-定子装配过程中基于深度学习的易变形材料的点云分割(下)

目录 4.3.2 校正网络 4.3.3 浅层特征提取网络 4.3.4 空间边界 Transformer 深层特征提取网络 4.3.5 损失函数...

谷歌浏览器关闭自动更新功能

背景&#xff1a;自动化测试需要下载webdriver驱动&#xff0c;然而浏览器自动更新会导致原来的驱动版本与现有浏览器版本不匹配&#xff0c;所以要禁用掉浏览器自动更新功能。 1.右键-我的电脑-打开管理&#xff1b; 2.选择任务计划程序-任务计划程序库-找到两个chrome自动更新…...

电商业务--技术负责人 250K*15

职位描述 研发团队管理 系统搭建 技术管理 系统架构 岗位职责 负责/参与到中大型负责系统的整体架构和设计&#xff1b; 根据业务特点和行业最佳实践&#xff0c;设计符合多个市场物流业务需求&#xff0c;且具备可扩展能力的系统架构和业务架构承担团队稳定性建设工作&#…...

MySQL只同步单个表或多个表,非全部同步!

replicate-do-table 是 MySQL 复制配置中的一个选项&#xff0c;它允许您指定要在从服务器上复制的表。如果您想要只复制主服务器上特定的表到从服务器&#xff0c;您可以使用这个选项。 以下是如何操作 replicate-do-table 的步骤&#xff1a; 停止从服务器: 在从服务器上执行…...

【论文基本功】【LaTeX】个人常用易忘LaTeX命令

【论文基本功】【LaTeX】个人常用易忘LaTeX命令 1. 基本符号2. 引用3. 字体及符号大小4. 其他参考 1. 基本符号 符号LaTeX命令备注 ∣ ⋅ ∣ | \cdot | ∣⋅∣| \cdot |绝对值 ∣ ∣ ⋅ ∣ ∣ || \cdot || ∣∣⋅∣∣\| \cdot \|范数 ⌈ ⋅ ⌉ \lceil \cdot \rceil ⌈⋅⌉\lce…...

JVM参数调优——G1收集器

开启 G1 Collector G1收集器的出现除了提供可控的低延迟GC&#xff0c;解决历史收集器的一些弊病&#xff0c;同时还尽力简化调优参数 对于大多数应用&#xff0c;开启收集器&#xff0c;再配置一下Xms和Xmx就足够了&#xff08;不建议配置Xmn&#xff09; -XX:UseG1GC核心参…...

Linux cp命令使用指南:详细教程及实际应用场景解析

文章目录 Linux中的cp命令使用指南1. 简介1.1 Linux操作系统简介1.2 文件系统和目录结构1.3 cp命令概述 2. cp命令基本用法2.1 复制文件2.2 复制目录2.3 复制多个文件或目录2.4 递归复制2.5 强制覆盖已存在文件2.6 保留文件权限和属性 3. 高级用法3.1 保留符号链接3.2 仅复制更…...

树结构数据在table中回显 treeselect disabled

<el-table-column label"产业认定" align"center" prop"industryIdentification"><template slot-scope"scope"><treeselectv-if"scope.row.industryIdentification"v-model"scope.row.industryIdentif…...

BOA服务器移植

BOA服务器移植 1、源码下载 http://www.boa.org/ News! (last updated 23 February 2005) Latest Released Version (0.94.13) here (signature here) --- 下载地址1.1 boa简介&#xff1a; 其可执行代码只有大约60KB左右&#xff0c;Boa是一个单任务的HTTP服务器&#xff…...

洛谷刷题入门篇:顺序结构

链接如下&#xff1a;https://www.luogu.com.cn/training/100#problems 一、Hello,World! 题目链接&#xff1a;https://www.luogu.com.cn/problem/B2002 题目描述 编写一个能够输出 Hello,World! 的程序。 提示&#xff1a; 使用英文标点符号&#xff1b;Hello,World! 逗…...

LVS+Haproxy

LVSHaproxy 一、Haproxy简介1.1、Haproxy应用分析1.2、Haproxy的特性1.3、常见负载均衡策略1.4、LVS、Haproxy、Nginx区别1.5、 Haproxy的优点1.6、常见的Web集群调度器 二、Haproxy部署实例四、日志定义优化 一、Haproxy简介 Haproxy 是一个使用C语言编写的自由及开放源代码软…...

Linux知识

文章目录 一、Apt1、查看操作系统信息2、换源3、比较4、用法5、ubuntu获取源码 二、pkg-config三、调试glibc 一、Apt 1、查看操作系统信息 使用以下命令查看本机的操作系统和位数信息&#xff1a; uname -m && cat /etc/*release输出&#xff1a; x86_64 DISTRIB_I…...

Java基础(三)

前言&#xff1a;前面主要涉及到java的基本语法&#xff0c;接下来本篇博客主要记录Java中Collections类、泛型、以及File类、IO流的学习。 目录 数据结构 泛型 集合 分类 Collection的分类 collection常用方法 collection遍历方式 迭代器 for循环 Lambda表达式 Lis…...

[Firefox/快捷键] 禁用Ctrl-W快捷键

最近给Firefox这一快捷键坑了几次。恰好发现在CMU也有人遇到类似的烦恼&#xff0c;找到一篇基于Linux的教程。 我使用的是Windows&#xff0c;所以根据自己的情况做了些修改&#xff0c;成功了。小众需求就犯懒直接将笔记贴上了&#xff0c;如果有谁用得上的话&#xff0c;我写…...

Git常用命令diff和mv

Git常用命令diff和mv 1、diff # 查看工作区和暂存区所有文件的对比 # 该命令可以显示尚未添加到stage的文件的变更 $ git diff# 查看工作区和暂存区单个文件的对比 $ git diff file# 显示暂存区和上一个commit的差异 # 查看暂存区与指定提交版本的不同,版本可缺省为HEAD $ gi…...

【谢希尔 计算机网络】第3章 数据链路层

数据链路层 数据链路层的地位 网络中的主机、路由器等都必须实现数据链路层局域网中的主机、交换机等都必须实现数据链路层不同链路层可能采用不同的数据链路层协议 数据链路层信道类型 点对点信道 使用一对一的点对点通信方式广播通信 必须使用专用的共享系电脑协议来协调这些…...

《DevOps实践指南》- 读书笔记(九)

DevOps实践指南 25. 附录附录 1 DevOps 的大融合精益运动敏捷运动Velocity 大会运动敏捷基础设施运动持续交付运动丰田套路运动精益创业运动精益用户体验运动Rugged Computing 运动 附录 2 约束理论和核心的长期冲突附录 3 恶性循环列表附录 4 交接和队列的危害附录 5 工业安全…...

数据库数据恢复-SQL SERVER数据库分区被格式化的数据恢复方案

SQL SERVER数据库故障类型&#xff1a; 1、SQL SERVER数据库文件被删除。 2、SQL SERVER数据库所在分区格式化。 3、SQL SERVER数据库文件大小变为“0”。 4、使用备份还原数据库时覆盖原数据库。 SQL SERVER数据库故障原因&#xff1a; 1、人为误操作。 2、文件系统损坏&#…...

ubuntu安装ffmpeg

Ubuntu安装FFMPEG Ubuntu安装FFMPEG 安装FFMPEG&#xff08;支持GPU加速&#xff09; 1.安装ffnvvodec2.安装libx2643.安装ffmpeg4.查看并测试5.卸载 安装FFMPEG&#xff08;CPU版本&#xff09; 安装FFMPEG&#xff08;支持GPU加速&#xff09; 默认已经安装cuda10.2、cud…...

CentOS上安装Docker

要在CentOS上安装Docker&#xff0c;可以按照以下步骤进行操作&#xff1a; 更新系统软件包列表&#xff1a; sudo yum update安装必要的软件包&#xff0c;以便可以通过HTTPS使用仓库并使用最新的内核&#xff1a; sudo yum install -y yum-utils device-mapper-persistent…...

三相PWM整流器有限集模型预测电流控制MATLAB仿真模型

微❤关注“电气仔推送”获得资料 模型简介&#xff1a; 整流器交流侧为三相对称电压&#xff0c;220V/50Hz&#xff0c;直流侧为760V&#xff0c;且电压可调。其中模型预测模块采用matlab-function模块实现&#xff0c;交流侧电感的标称值为0.01H&#xff0c;如果不是&#x…...

【JavaEE】多线程(三)

多线程&#xff08;三&#xff09; 续上文&#xff0c;多线程&#xff08;二&#xff09;&#xff0c;我们已经讲了 创建线程Thread的一些重要的属性和方法 那么接下来&#xff0c;我们继续来体会了解多线程吧~ 文章目录 多线程&#xff08;三&#xff09;线程启动 startsta…...

9.25day5---Qt

登录页面设计&#xff0c;建立用户注册以及登录的数据库&#xff0c;数据库保存用户名和密码 &#xff08;ps:本篇只完成了登录功能&#xff0c;其他功能&#xff0c;请见下篇嘿嘿。&#xff09; 再次注册则失败&#xff1a; 代码如下&#xff1a; 头文件&#xff1a; 登录…...

营销型网站案例易网拓/软文推广服务

您可以使用compute和computeIfPresent方法compute computeIfPresent自己的优势。 重要的是要在使用者内部进行添加/锁定/删除&#xff0c;以使其自动完成。注意&#xff1a;您在示例中使用了putIfAbsent &#xff0c;但是它返回了以前分配的值&#xff0c;而不是新分配的值。pu…...

济南做设计公司网站/百度关键词快排

KMP算法用于串的模式匹配&#xff0c;主串S&#xff0c;子串T&#xff08;也叫模式串&#xff09;&#xff0c;模式匹配意思是从S中找出跟T一样的子串&#xff0c;就是说判断S是否包含T&#xff0c;时间复杂度O&#xff08;mn&#xff09;&#xff0c;实现这个算法关键有两步&a…...

做网购网站要多少钱/seo刷点击软件

前言前两天在 echarts 上寻找灵感的时候&#xff0c;看到了很多有关地图类似的例子&#xff0c;地图定位等等&#xff0c;但是好像就是没有地铁线路图&#xff0c;就自己花了一些时间捣鼓出来了这个交互式地铁线路图的 Demo&#xff0c;地铁线路上的点是在网上随便下载了一个&a…...

专门做图的网站/互联网公司排名

一种支持内存共享的简捷工具 摘自https://www.ibm.com/developerworks/cn/linux/thread/posix_thread1/ 线程是有趣的 了解如何正确运用线程是每一个优秀程序员必备的素质。线程类似于进程。如同进程&#xff0c;线程由内核按时间分片进行管理。在单处理器系统中&#xff0c;…...

深圳龙岗是中风险还是低/信息如何优化上百度首页公司

解决修改 Linux 下的 PHP 环境变量不生效的方法参考文章&#xff1a; &#xff08;1&#xff09;解决修改 Linux 下的 PHP 环境变量不生效的方法 &#xff08;2&#xff09;https://www.cnblogs.com/yehuisir/p/11737217.html 备忘一下。...

可信网站身份验证 必须做吗/杭州网站优化

今天中午&#xff0c;买上菜以后&#xff0c;由于拿着菜找菜&#xff0c;朋友说我&#xff0c;该歇歇了&#xff0c;都精神恍惚了。的确&#xff0c;我这几天办的糊涂事真是不少&#xff0c;只一天早上我就做了好几次糊涂事&#xff0c;先是拿洗面奶往头上涂&#xff0c;接着就…...