给了70组x,y,根据提示,是求拟合曲线,再通过x求y
知道MATLAB应该录入就能解决吧,但是没下这软件,试试用python解决
#coding:utf-8 from pwn import * import numpy as np import matplotlib.pyplot as plt import re p=remote('node3.buuoj.cn',25402) p.recvuntil("hello,whats your name?") p.sendline("payload") print(p.recvline()) print(p.recvline()) print(p.recvline()) print(p.recvline()) print(p.recvline()) n=" " p.sendline(n) x=np.zeros(70) y=np.zeros(70) for i in range(0,70): a=p.recvline() #print(a) match = re.search( r'=(.*?),(.*?);', a) x1=match.group(1) #print(x) x[i]=x1 y1=match.group(2) y1=y1[2:] y[i]=y1 #print(y) print(x) print(y) #x = x.array(y, dtype='S32') x = x.astype('float64') #y = np.array(y, dtype='S32') y = y.astype('float64') poly = np.polyfit(x, y, deg = 2) p.recvline()for j in range(0,10): response=p.recvline() x_need=response[7:-5] x_need=float(x_need) #x_need=np.fromstring(x_need) #x_need = x_need.astype('float64') print(x_need) y_need=np.polyval(poly, x_need) print(y_need) y_need=str(y_need) p.sendline(y_need) b=p.recvline() print(b)
很简单,通过numpy库的polyfit和polyval就能解决
附上官网参考文件
https://ww2.mathworks.cn/help/matlab/ref/polyfit.html https://www.numpy.org.cn/