IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 七、逻辑回归项目实战---音乐分类器 -> 正文阅读

[数据结构与算法]七、逻辑回归项目实战---音乐分类器

一、项目需求

训练集数据为六类音乐([“classical”, “jazz”, “country”, “pop”, “rock”, “metal”]),格式为.wav,每类音乐都有100首
音乐分类器项目,主要运用到了傅里叶变换函数
很多东西越在高维空间处理起来就会变得越是简单
例如:书本上的文字是一维,漫画图像是二维,视频是三维(加上了时间维度),你喜欢看书还是看图画书还是看电影?
很显然,视频更容易让人们所接受

一条直线,你从正面看是一条直线,当你从侧面看时,则变成了一个点,这就是观察方向的不同导致的结果不同,但是有影响吗?这根直线还是这根直线,没有变,只不过观察方向角度变了而已。
音乐是有多个频率所构成的,傅里叶公式可以简单的理解为从另一个角度进行观察音乐频率
正常的我们是通过前方(时间维度)进行观察聆听音乐的,而傅里叶则是从右侧(频域)进行观察的
大家都知道,任何一个连续函数都可以用正弦函数叠加,故音乐则可以理解为多个正弦函数的叠加
当你从傅里叶的角度(右侧)进行观察时,就会发现实则是多个峰或者说是多条直线而已,问题瞬间变得简单了

在这里插入图片描述

二、数据集

这里的音乐使用的都是单声道的音乐(.wav),通过傅里叶变换将音频进行转化为频谱(.fft.npy)
若其他同学手边有数据也可以自己进行转换
可以参考该篇博文:.wav音乐文件转换为.fft.npy频谱格式文件
若不想自己动手转换,可以直接使用这个数据集:.fft.npy格式音乐经过傅里叶变换得到的频谱数据集

训练集:在这里插入图片描述
测试集:在这里插入图片描述

三、完整代码

需要修改的地方:
rad = "G:/PyCharm/workspace/machine_learning/trainset/"+g+"."+str(n).zfill(5)+ ".fft"+".npy"训练集路径
wavfile.read("G:/PyCharm/workspace/machine_learning/trainset/sample/heibao-wudizirong-remix.wav")测试集路径

# coding:utf-8

import numpy as np
from sklearn import linear_model, datasets
import matplotlib.pyplot as plt
from scipy.stats import norm
from scipy.fftpack import fft
from scipy.io import wavfile

"""
n = 40
# hstack使得十足拼接
# rvs是Random Variates随机变量的意思
# 在模拟X的时候使用了两个正态分布,分别制定各自的均值,方差,生成40个点
X = np.hstack((norm.rvs(loc=2, size=n, scale=2), norm.rvs(loc=8, size=n, scale=3)))
# zeros使得数据点生成40个0,ones使得数据点生成40个1
y = np.hstack((np.zeros(n),np.ones(n)))
# 创建一个 10 * 4 点(point)的图,并设置分辨率为 80
plt.figure(figsize=(10, 4),dpi=80)
# 设置横轴的上下限
plt.xlim((-5, 20))
# scatter散点图
plt.scatter(X, y, c=y)
plt.xlabel("feature value")
plt.ylabel("class")
plt.grid(True, linestyle='-', color='0.75')
plt.savefig("D:/workspace/scikit-learn/logistic_classify.png", bbox_inches="tight")
"""

"""
# linspace是在-5到15的区间内找10个数
xs=np.linspace(-5,15,10)

#---linear regression----------
from sklearn.linear_model import LinearRegression
clf = LinearRegression()
# reshape重新把array变成了80行1列二维数组,符合机器学习多维线性回归格式
clf.fit(X.reshape(n * 2, 1), y)
def lin_model(clf, X):
    return clf.intercept_ + clf.coef_ * X

#---logistic regression--------
from sklearn.linear_model import LogisticRegression
logclf = LogisticRegression()
# reshape重新把array变成了80行1列二维数组,符合机器学习多维线性回归格式
logclf.fit(X.reshape(n * 2, 1), y)
def lr_model(clf, X):
    return 1.0 / (1.0 + np.exp(-(clf.intercept_ + clf.coef_ * X)))

#----plot---------------------------    
plt.figure(figsize=(10, 5))
# 创建一个一行两列子图的图像中第一个图
plt.subplot(1, 2, 1)
plt.scatter(X, y, c=y)
plt.plot(X, lin_model(clf, X),"o",color="orange")
plt.plot(xs, lin_model(clf, xs),"-",color="green")
plt.xlabel("feature value")
plt.ylabel("class")
plt.title("linear fit")
plt.grid(True, linestyle='-', color='0.75')
# 创建一个一行两列子图的图像中第二个图
plt.subplot(1, 2, 2)
plt.scatter(X, y, c=y)
plt.plot(X, lr_model(logclf, X).ravel(),"o",color="c")
plt.plot(xs, lr_model(logclf, xs).ravel(),"-",color="green")
plt.xlabel("feature value")
plt.ylabel("class")
plt.title("logistic fit")
plt.grid(True, linestyle='-', color='0.75')

plt.tight_layout(pad=0.4, w_pad=0, h_pad=1.0)     
plt.savefig("D:/workspace/scikit-learn/logistic_classify2.png", bbox_inches="tight")
"""


"""
使用logistic regression处理音乐数据,音乐数据训练样本的获得和使用快速傅里叶变换(FFT)预处理的方法需要事先准备好
1. 把训练集扩大到每类100个首歌而不是之前的10首歌,类别仍然是六类:jazz,classical,country, pop, rock, metal
2. 同时使用logistic回归和KNN作为分类器
3. 引入一些评价的标准来比较Logistic和KNN在测试集上的表现 
"""

# 准备音乐数据
# def create_fft(g, n):
#     rad = "d:/genres/"+g+"/converted/"+g+"."+str(n).zfill(5)+".au.wav"#音乐文件的路径,这里的音乐文件都是.wav格式
#     sample_rate, X = wavfile.read(rad)#sample_rate采样率;X为音乐文件本身
#     fft_features = abs(fft(X)[:1000])#对音乐文件本身进行fft快速傅里叶变化,取前1000赫兹数据,进行取绝对值,得到fft_features傅里叶变换的特征
#     sad = "d:/trainset/"+g+"."+str(n).zfill(5) + ".fft"#将特征存储到这个路径下
#     np.save(sad, fft_features)#存储特征,存储的是.fft格式,但是最终生成的是.fft.npy格式,这是numpy自动生成的
#
# # -------create fft--------------
#
#
# genre_list = ["classical", "jazz", "country", "pop", "rock", "metal"]
# for g in genre_list:
#     for n in range(100):
#         create_fft(g, n)


# 加载训练集数据,分割训练集以及测试集,进行分类器的训练
# 构造训练集!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# -------read fft--------------
genre_list = ["classical", "jazz", "country", "pop", "rock", "metal"]
X = []#矩阵
Y = []#标签
for g in genre_list:
    for n in range(100):#六类音乐,每类100首
        rad = "G:/PyCharm/workspace/machine_learning/trainset/"+g+"."+str(n).zfill(5)+ ".fft"+".npy"
        fft_features = np.load(rad)
        X.append(fft_features)
        Y.append(genre_list.index(g))

X = np.array(X)#把列表转化为array数组类型
Y = np.array(Y)
"""
# 首先我们要将原始数据分为训练集和测试集,这里是随机抽样80%做测试集,剩下20%做训练集 
import random
randomIndex=random.sample(range(len(Y)),int(len(Y)*8/10))
trainX=[];trainY=[];testX=[];testY=[]
for i in range(len(Y)):
    if i in randomIndex:
        trainX.append(X[i])
        trainY.append(Y[i])
    else:
        testX.append(X[i])
        testY.append(Y[i])
"""
        
# 接下来,我们使用sklearn,来构造和训练我们的两种分类器 
# ------train logistic classifier--------------
from sklearn.linear_model import LogisticRegression
#multi_class='ovr'表示使用逻辑回归的多分类,若为multinomial则使用softmax进行多分类;solver='sag'使用随机梯度下降法,若不传则默认使用liblinear;max_iter=10000最大迭代次数
model = LogisticRegression()#创建逻辑回归对象
model.fit(X, Y)#传入数据进行训练模型,这里的model是在内存里面
# predictYlogistic=map(lambda x:logclf.predict(x)[0],testX)

# 可以采用Python内建的持久性模型 pickle 来保存scikit的模型,下面的代码是将model存到硬盘里面
# import pickle
# s = pickle.dumps(model)
# clf2 = pickle.loads(s)
# clf2.predict(X[0])


"""
#----train knn classifier-----------------------
from sklearn.neighbors import NearestNeighbors
neigh = NearestNeighbors(n_neighbors=1)
neigh.fit(trainX) 
predictYknn=map(lambda x:trainY[neigh.kneighbors(x,return_distance=False)[0][0]],testX)

# 将predictYlogistic以及predictYknn与testY对比,我们就可以知道两者的判定正确率 
a = np.array(predictYlogistic)-np.array(testY)
print a, np.count_nonzero(a), len(a)
accuracyLogistic = 1-np.count_nonzero(a)/(len(a)*1.0)
b = np.array(predictYknn)-np.array(testY)
print b, np.count_nonzero(b), len(b)
accuracyKNN = 1-np.count_nonzero(b)/(len(b)*1.0)

print "%f" % (accuracyLogistic)
print "%f" % (accuracyKNN)
"""

print('Starting read wavfile...')
# prepare test data-------------------
# sample_rate, test = wavfile.read("d:/trainset/sample/outfile.wav")
sample_rate, test = wavfile.read("G:/PyCharm/workspace/machine_learning/trainset/sample/heibao-wudizirong-remix.wav")
# sample_rate, test = wavfile.read("d:/genres/metal/converted/metal.00080.au.wav")
testdata_fft_features = abs(fft(test))[:1000]
print(sample_rate, testdata_fft_features, len(testdata_fft_features))
type_index = model.predict([testdata_fft_features])[0]
print(type_index)
print(genre_list[type_index])

"""
from sklearn.metrics import confusion_matrix
cmlogistic = confusion_matrix(testY, predictYlogistic)
cmknn = confusion_matrix(testY, predictYknn)

def plotCM(cm,title,colorbarOn,givenAX):
    ncm=cm/cm.max()
    plt.matshow(ncm, fignum=False, cmap='Blues', vmin=0, vmax=2.0)
    if givenAX=="":
        ax=plt.axes()
    else:
        ax = givenAX
    ax.set_xticks(range(len(genre_list)))
    ax.set_xticklabels(genre_list)
    ax.xaxis.set_ticks_position("bottom")
    ax.set_yticks(range(len(genre_list)))
    ax.set_yticklabels(genre_list)
    plt.title(title,size=12)
    if colorbarOn=="on":
        plt.colorbar()
    plt.xlabel('Predicted class')
    plt.ylabel('True class')
    for i in range(cm.shape[0]):
        for j in range(cm.shape[1]):
            plt.text(i,j,cm[i,j],size=15)

plt.figure(figsize=(10, 5))  
fig1=plt.subplot(1, 2, 1)          
plotCM(cmlogistic,"confusion matrix: FFT based logistic classifier","off",fig1.axes)   
fig2=plt.subplot(1, 2, 2)     
plotCM(cmknn,"confusion matrix: FFT based KNN classifier","off",fig2.axes) 
plt.tight_layout(pad=0.4, w_pad=0, h_pad=1.0)     

plt.savefig("d:/confusion_matrix.png", bbox_inches="tight")
"""

输出结果如下:
其中44100为采样率

"""
44100 [2.62963968e+08 4.46200714e+06 5.15395385e+06 4.43376757e+06
 3.74566845e+06 4.70186729e+06 5.33935836e+06 4.61999477e+06
 4.15225785e+06 3.30594588e+06 4.31103082e+06 5.05558675e+06
 5.32297672e+06 4.85506026e+06 5.19126496e+06 4.14585787e+06
 3.62846270e+06 4.75147337e+06 3.91082781e+06 4.62259775e+06
 4.48238357e+06 3.23787122e+06 2.22014030e+06 3.78805307e+06
 2.14269906e+06 3.13617469e+06 3.12430918e+06 4.46836068e+06
 2.74392608e+06 3.78402588e+06 1.87577534e+06 3.49203803e+06
 2.33558316e+06 3.81553507e+06 2.63688151e+06 3.02667708e+06
 2.04674785e+06 2.22072034e+06 1.91995398e+06 1.98927890e+06
 1.68224240e+06 1.35139077e+06 2.30549645e+06 6.03046897e+05
 1.31438823e+06 1.95087823e+06 8.49833030e+05 1.19171948e+06
 1.23251661e+06 1.89390106e+06 5.80352061e+05 1.50388290e+06
 1.25938435e+06 1.02978969e+06 2.36614610e+05 3.01560843e+05
 1.27662352e+06 1.49221129e+06 5.17213388e+05 8.00948818e+05
 7.65561994e+05 3.62419277e+05 1.50979436e+06 3.85068213e+05
 6.41942889e+05 3.61144502e+05 6.85268116e+05 1.00144583e+06
 6.46261080e+05 1.40845476e+06 6.62866166e+05 6.91106024e+05
 1.23208363e+06 1.36027432e+06 3.62846259e+05 5.72218147e+05
 7.75993152e+05 9.14515445e+05 1.18571572e+06 9.02475526e+05
 4.98999881e+05 1.74914232e+06 3.94735421e+05 1.22194083e+06
 9.44511346e+05 5.64374132e+05 1.76153158e+06 1.92086536e+06
 1.23147054e+06 3.62420572e+05 5.19808732e+05 1.34346298e+06
 7.21219553e+05 8.88950439e+05 1.75325706e+06 2.29355413e+06
 1.08391025e+06 9.30282476e+05 1.10235851e+06 3.67805257e+05
 5.77443645e+05 5.94086277e+05 1.19729395e+06 5.34697818e+05
 3.88725959e+05 7.87438862e+05 1.77019327e+06 1.66520041e+06
 2.07569988e+06 7.36173308e+05 6.56954650e+05 1.61943917e+06
 8.67054883e+05 1.26014326e+06 1.61921808e+06 1.54533344e+06
 7.07774874e+05 1.62786750e+05 2.97020086e+05 1.13388210e+06
 5.63030498e+05 9.58680710e+05 1.16377079e+06 9.77142004e+05
 8.99557347e+05 4.93741261e+05 1.99306708e+05 1.20241539e+06
 7.47989489e+04 1.67983186e+06 6.79762302e+05 8.65937699e+05
 5.50519377e+05 1.72907596e+06 2.93786505e+05 7.75062173e+05
 9.68810309e+05 1.43654854e+06 8.08623022e+05 2.59287374e+05
 4.57334088e+05 9.85646332e+05 1.38921416e+06 1.17264490e+06
 7.41666163e+05 2.05204503e+06 8.05602385e+05 7.40724129e+05
 9.05423650e+05 4.47600257e+05 9.70026356e+05 1.19707145e+06
 8.66600040e+05 9.09215043e+05 6.38983412e+05 6.24539950e+05
 2.30489745e+05 9.49711853e+05 1.62124067e+06 1.33000213e+06
 7.49378742e+05 4.94629349e+05 2.53593993e+05 8.26687520e+05
 7.83442269e+05 1.10375179e+06 7.42007345e+05 5.10356938e+05
 4.41047858e+05 8.81833105e+05 2.42540213e+06 3.30401795e+05
 8.80062590e+05 6.49905701e+05 3.47149964e+05 1.05602066e+06
 1.18980862e+06 1.96891139e+05 1.14120246e+06 8.02951614e+05
 6.00111367e+05 6.69160363e+05 1.89491761e+05 5.95679660e+05
 1.38204166e+06 1.21312932e+06 1.00683336e+06 1.71907045e+06
 1.47929539e+06 1.05542669e+06 2.36641708e+06 9.33510819e+05
 7.48075310e+05 1.77764553e+06 4.21246379e+05 7.90733672e+05
 1.39589725e+06 7.09737413e+05 7.30502934e+05 1.25361964e+06
 6.19123157e+05 6.88892351e+05 6.26028154e+05 8.54795006e+05
 7.06965041e+05 1.21987749e+06 7.52060331e+05 4.71848433e+05
 2.36098779e+05 8.47966863e+05 4.01129984e+05 1.27542408e+06
 7.14220047e+05 5.18027090e+05 5.58925060e+05 2.79974210e+05
 7.62875042e+05 1.84079472e+06 1.42550029e+06 1.14811203e+06
 1.30128360e+06 1.24869130e+06 3.52352404e+05 4.21421728e+05
 1.18173485e+06 5.10136084e+05 3.75560127e+05 4.79102195e+05
 1.10333151e+06 2.05555702e+06 7.23702249e+05 3.61178799e+05
 7.04851219e+05 1.44012108e+06 9.26402727e+05 2.02821056e+05
 4.45325652e+05 7.90522874e+05 8.26436685e+05 1.17563229e+06
 8.43867568e+05 4.01048078e+05 9.26085978e+05 6.44995771e+05
 3.53685137e+05 8.34366832e+05 1.23386512e+06 7.02375781e+05
 4.58931591e+05 8.43526489e+05 1.10676720e+06 7.68521715e+05
 1.62269410e+06 1.58265455e+06 1.03200640e+06 4.64795983e+05
 9.90089422e+05 5.24337673e+05 3.66658840e+05 6.55805698e+05
 5.70752207e+05 2.76033608e+05 3.23297345e+05 1.33078141e+06
 6.16117851e+05 3.63376716e+05 1.22034305e+06 1.87348103e+06
 8.18691165e+05 2.43489854e+05 1.06339848e+06 1.38161299e+05
 7.08259014e+05 1.32420185e+06 3.73634708e+05 4.74188119e+05
 8.56522386e+05 1.18141641e+06 1.52211708e+06 4.07008939e+05
 8.35340660e+05 6.40881238e+05 1.09076459e+06 1.21963072e+06
 7.56369038e+05 1.14117511e+06 1.39389976e+06 5.10490203e+05
 7.00735069e+05 2.37107675e+05 8.94992427e+05 1.53159359e+06
 5.24539638e+05 7.88949376e+04 8.78275390e+05 1.68422430e+06
 8.09255981e+05 4.57182807e+05 1.17241872e+06 2.09394245e+05
 9.77952748e+04 8.97739813e+05 1.08742141e+06 9.69384074e+05
 9.81838586e+05 5.07041429e+05 1.15578207e+06 3.49371827e+05
 6.20229249e+05 3.60935229e+05 1.03026311e+06 3.46570750e+05
 1.08685762e+06 1.66151632e+06 9.47736790e+05 4.26436467e+05
 1.13526476e+06 5.84625497e+05 1.51928634e+06 9.70060181e+05
 1.62523526e+06 6.11541462e+05 4.29298422e+05 4.61724329e+05
 5.66555319e+05 1.29364175e+06 1.01953071e+06 1.94211951e+06
 2.72120805e+05 1.14321213e+06 5.67287402e+05 1.94838376e+06
 8.23364882e+05 1.62185476e+06 1.12559716e+06 4.55413724e+05
 3.94762550e+05 9.96679018e+05 8.64137068e+05 9.73976199e+05
 5.00463157e+05 5.05326117e+05 7.18463504e+05 3.00032365e+05
 1.29926845e+06 9.28358383e+05 4.51525493e+05 4.65797885e+05
 6.70108099e+05 1.00455574e+06 1.22544843e+05 7.84409036e+05
 2.52051242e+06 1.13223858e+06 8.64798855e+05 7.61259423e+05
 9.48682621e+05 5.33148975e+05 3.99035609e+05 1.47581282e+06
 2.39172803e+06 6.02291705e+05 9.12335511e+05 1.10007913e+06
 3.88451743e+05 3.18750364e+05 1.12384444e+06 5.00540271e+05
 1.60319399e+05 7.27587480e+05 6.17185073e+05 1.35890728e+06
 1.56238108e+06 9.65851067e+05 1.07019478e+06 1.63850864e+06
 6.47843129e+05 2.65218848e+05 1.17738892e+06 1.19611403e+06
 2.75522201e+05 1.34222981e+06 2.75771621e+05 1.98303864e+05
 7.81263330e+05 3.26290246e+05 1.74968242e+06 7.61635689e+05
 7.82203438e+05 4.37269114e+05 4.94924240e+05 4.04790850e+05
 6.06235962e+05 1.14968590e+06 9.01138935e+05 3.87643407e+05
 1.25101978e+06 1.25419381e+06 1.35912365e+06 1.10417253e+06
 2.56006176e+05 1.68242848e+05 6.92147285e+05 5.62794655e+05
 4.93718498e+05 5.32081292e+05 1.27889173e+06 1.07027869e+06
 1.10223160e+06 1.21005716e+06 8.85081307e+05 9.54022330e+05
 1.09599439e+06 1.00597502e+06 1.32263178e+06 9.81496867e+05
 1.34961613e+06 9.75037511e+05 6.85154265e+05 2.74366226e+05
 1.50605422e+06 1.24630822e+06 1.16136322e+06 5.19311262e+05
 1.63678378e+06 1.00376123e+06 1.62954572e+06 5.53658511e+05
 1.47319245e+06 1.16738338e+06 8.38245719e+05 1.09516870e+06
 4.70652165e+05 4.84287731e+05 1.07054018e+06 1.51727656e+06
 5.68360369e+05 1.13788710e+06 1.11524639e+06 5.50195476e+05
 2.54789570e+06 6.70319933e+05 5.94055329e+05 1.40070839e+06
 1.12209139e+06 6.66737961e+05 1.12603699e+06 7.59905686e+05
 1.28043310e+06 1.73220091e+06 1.62539809e+06 1.43598424e+06
 2.44608474e+05 9.76455920e+05 1.65895428e+06 4.74288051e+05
 1.10317841e+06 7.60719720e+05 1.10148269e+06 1.22954150e+06
 3.90806811e+05 7.68896458e+05 1.12202274e+06 1.20163265e+06
 1.22283285e+05 3.95298481e+05 1.44100987e+06 1.13628142e+06
 5.47027791e+05 1.44282330e+06 1.51116579e+06 2.94764054e+05
 1.98303470e+06 6.60890367e+05 1.74400473e+05 3.43742919e+05
 1.32702565e+06 9.70334589e+05 1.44755428e+06 1.19220440e+05
 1.05416292e+06 7.65688495e+05 9.26620871e+05 1.05452545e+06
 3.45971006e+05 1.38729419e+06 9.25768093e+05 5.78718349e+05
 4.97405435e+05 6.38795336e+05 4.69704768e+05 1.08195127e+06
 1.16430563e+06 1.12494833e+06 4.95913198e+05 1.77315771e+06
 1.03099010e+06 4.83720528e+05 3.21831897e+06 2.89220027e+05
 6.79691208e+05 5.54079998e+05 4.93231507e+05 6.97124088e+05
 7.70214750e+05 3.41919222e+05 9.71853585e+05 3.02895802e+05
 1.60873623e+06 1.19824400e+06 7.22427028e+05 7.13426231e+05
 1.02447104e+05 7.53407279e+05 1.41847030e+06 1.17125187e+05
 4.90554481e+05 2.22813151e+06 1.81816145e+06 2.00108016e+06
 9.88524222e+05 6.66761214e+05 1.41700184e+06 1.73091718e+05
 1.27497266e+06 8.84137125e+05 6.78333314e+05 1.25807940e+06
 6.10437456e+05 6.18501388e+05 8.10004665e+05 1.52737362e+06
 9.48293718e+05 8.16537529e+05 6.56080065e+05 2.61681911e+05
 3.09335595e+05 1.61035190e+06 6.71864447e+05 7.03677274e+05
 1.44948054e+06 1.33119383e+06 2.64438246e+06 8.99604614e+05
 5.90471091e+05 1.99137527e+05 1.03576680e+06 2.36999135e+06
 1.09501221e+06 2.70689106e+05 3.76008484e+05 2.13801101e+06
 1.72034321e+06 1.03344188e+06 8.55742897e+05 5.82042271e+05
 1.85276639e+06 8.23264426e+05 1.22193431e+06 6.48059124e+05
 1.72918335e+06 1.45109304e+06 8.33139569e+05 1.05104656e+06
 1.01674950e+06 1.49288532e+05 1.20247840e+06 4.39570274e+05
 1.79832395e+06 9.98752681e+05 9.54955398e+05 4.28114058e+05
 1.58621395e+05 9.38163338e+05 1.11554619e+06 7.80633423e+05
 5.13067795e+05 5.03253676e+05 2.36904360e+05 4.99709843e+05
 6.21949993e+05 2.25802159e+06 9.39527797e+05 1.23773463e+06
 1.15677145e+06 6.43416576e+05 1.47631874e+06 5.80764306e+05
 1.40761056e+05 6.16162073e+05 1.42090316e+06 2.47591155e+06
 8.58620247e+05 7.11971890e+05 1.09890188e+06 2.79107673e+06
 1.45876445e+06 1.12196751e+06 1.38826076e+06 8.28682888e+05
 5.07527103e+05 1.05698761e+06 9.96337472e+05 9.74189758e+05
 1.40487992e+06 3.70140740e+05 1.19378682e+06 2.54631763e+05
 4.53796268e+05 1.44369582e+06 1.37487873e+06 1.33689697e+06
 1.19280267e+06 1.13395796e+06 1.27007970e+06 2.57351451e+05
 8.82385435e+05 1.82934432e+06 1.00658762e+06 1.65859345e+06
 5.92281619e+05 8.42457890e+05 9.79791964e+05 7.08269013e+05
 1.23456666e+06 1.39433050e+06 8.43614328e+05 1.04659730e+06
 1.71332770e+05 1.27208163e+06 4.12933744e+05 1.19368294e+06
 1.01983378e+06 1.14148324e+06 1.82837589e+06 2.17376752e+06
 1.15679073e+06 9.52035769e+05 2.46305964e+06 1.64439928e+06
 1.24728170e+06 1.68959811e+06 7.22742065e+05 1.33941200e+06
 9.36138845e+05 1.08803636e+06 4.56648829e+05 1.46120228e+06
 7.85178694e+05 1.03316831e+06 1.02764622e+06 1.15405102e+06
 8.27220784e+05 8.50158280e+05 9.65043821e+05 1.23654857e+06
 4.99115388e+05 1.94305570e+06 1.21088371e+06 1.30802627e+06
 7.70917391e+05 1.17759305e+06 1.30818276e+06 1.62957354e+06
 3.23667488e+06 8.67097278e+05 8.58457212e+05 2.72089170e+06
 9.08574562e+05 2.04681724e+06 1.58712952e+06 8.40103134e+05
 1.14604332e+06 1.16037077e+06 1.00681060e+06 7.75054827e+05
 1.23125645e+06 1.53232299e+06 1.27156373e+06 9.17246636e+06
 3.29590600e+06 2.05453011e+06 2.02744927e+06 2.04618268e+06
 2.32258974e+06 2.15913282e+06 1.65675095e+06 7.94574368e+05
 4.14347532e+05 1.34996904e+06 1.28450160e+06 1.70713907e+06
 2.53389774e+06 7.53067108e+05 2.92109765e+06 1.35891954e+06
 4.54258355e+05 9.69501203e+05 8.60747492e+05 1.25164114e+06
 9.52457948e+05 1.41437482e+06 1.92057969e+06 1.93124142e+05
 5.84525516e+05 1.02859923e+06 1.47588480e+06 2.11134185e+06
 1.65883558e+06 1.83035726e+06 1.40076106e+06 1.68206907e+06
 1.18123607e+06 2.46259139e+06 1.89125390e+06 5.48837412e+05
 7.18930209e+05 1.57502106e+06 3.66499377e+05 2.68878538e+06
 1.31642030e+06 3.74088262e+06 1.18170765e+06 1.32040737e+06
 1.31853822e+06 2.69033216e+06 1.84839762e+06 4.25735850e+05
 5.51234171e+05 1.09019441e+06 1.62550524e+06 6.57396223e+05
 1.27844897e+06 5.16691913e+05 2.73157674e+06 6.23682863e+05
 1.10991453e+06 2.27380293e+06 2.57710006e+06 2.31701722e+06
 1.56106910e+06 2.77372354e+05 1.58545730e+06 7.49283564e+05
 7.03092728e+05 8.22247656e+05 3.55201948e+05 2.82427331e+06
 2.37488521e+06 1.02221032e+06 3.34250229e+05 1.76831695e+06
 1.73407355e+06 1.01221178e+06 1.30767170e+06 2.06582328e+06
 1.30939774e+06 9.02271429e+05 1.55282000e+06 2.66791517e+06
 1.46070663e+06 2.36855447e+06 2.47778462e+06 1.65150285e+06
 2.86038028e+06 2.11331093e+06 1.03168160e+06 4.20297050e+06
 1.37391280e+06 1.75552249e+06 1.42466104e+06 2.02248038e+06
 1.21328124e+06 1.47561521e+06 1.13083699e+06 1.99081397e+06
 3.09330360e+06 2.30924547e+06 1.83329091e+06 8.09051867e+05
 1.70263848e+06 1.10090664e+06 1.85819900e+06 2.38946190e+05
 1.95820740e+06 1.52776711e+06 1.43756932e+06 1.85151140e+06
 9.35115322e+05 1.53739367e+06 2.30774990e+06 1.12081960e+06
 2.65094331e+06 2.91169399e+06 4.91570496e+05 1.37162558e+06
 3.83845234e+06 2.79701207e+05 2.23682020e+06 2.85867756e+06
 1.49590828e+06 2.75865210e+06 1.71068052e+06 3.17879941e+06
 2.21070867e+06 1.25671294e+06 2.07236085e+06 8.59636914e+05
 3.33143651e+06 2.82114412e+06 3.62873617e+06 2.30389801e+06
 6.23386608e+05 1.14024549e+06 1.42623320e+06 2.94519898e+06
 2.08760517e+06 2.12760802e+06 1.07203047e+06 2.72068954e+06
 2.01460828e+06 1.46703960e+06 1.05998485e+06 1.90473064e+06
 2.03451257e+06 8.09722707e+05 2.13045612e+06 1.62661941e+06
 9.49332627e+05 1.84730206e+06 1.36601889e+06 2.20125544e+06
 8.21619750e+05 2.45818166e+06 2.13201457e+06 1.65595139e+06
 4.79679482e+06 3.51013300e+06 2.98771178e+06 1.26291467e+06
 3.49019552e+06 2.52078746e+06 1.27835388e+06 1.91240226e+06
 3.69107173e+06 2.30183493e+06 8.17798057e+05 7.77947217e+05
 2.19533562e+06 6.88382070e+06 2.53170163e+06 1.50392284e+06
 4.01454559e+06 1.66508164e+06 3.03868030e+06 4.26670365e+06
 1.66979802e+06 5.97165928e+06 2.55894914e+06 2.30273943e+06
 2.10731316e+06 3.13332555e+06 2.70468729e+06 1.16442579e+06
 1.46038845e+06 2.46001200e+06 3.02604152e+06 2.30646781e+06
 1.71304428e+06 2.54375702e+06 1.38768714e+06 1.06188052e+06
 1.72130167e+06 1.38045148e+06 1.85959525e+06 1.72060287e+06
 1.86311648e+06 1.97971883e+06 1.58367654e+06 1.57559405e+06
 1.86531133e+06 1.26524498e+06 1.34270543e+06 1.87778217e+06
 1.76837457e+06 2.91085940e+06 1.13059030e+06 2.17543391e+06
 8.25995368e+05 1.21550029e+06 1.72464645e+06 5.32765444e+05
 2.97267051e+06 2.80904696e+06 2.27706903e+06 2.45531515e+06
 3.14674682e+06 2.77241682e+05 3.59494379e+06 4.70111975e+05
 3.31343742e+05 1.05652740e+06 1.94506705e+06 2.54990736e+06
 7.65698308e+05 2.91493658e+06 8.01963983e+05 1.72021815e+06
 6.02022592e+05 1.04332293e+06 9.62060816e+05 3.36197104e+06
 2.68663806e+06 1.13708602e+06 3.96654483e+06 2.81562282e+06
 2.42820317e+05 8.35760918e+04 1.64158835e+06 3.30249874e+06
 1.37157771e+06 2.12389794e+06 3.23269416e+06 8.45912977e+05
 1.35140210e+06 5.35804806e+05 1.36545428e+06 1.30407902e+06
 1.29210339e+06 1.52951059e+06 1.17959961e+06 1.33435273e+06
 1.71725020e+06 4.32548267e+06 2.42964008e+06 1.09615191e+06
 2.38000150e+06 2.08306149e+05 1.61729929e+06 1.69213408e+06
 2.17676494e+06 1.32419195e+06 2.35247695e+06 1.22927245e+06
 2.45801927e+06 2.54130142e+06 1.10460223e+06 2.83483470e+06
 2.25941505e+06 1.26583137e+06 2.15877447e+06 5.32025563e+05
 8.10206574e+05 1.21008066e+06 2.56992726e+05 7.78186822e+05
 1.57350690e+06 2.42269187e+06 3.34769234e+06 7.14373786e+05
 1.73231035e+06 1.85696403e+06 2.42095050e+06 3.28998084e+06
 1.28149279e+06 2.59963754e+06 4.55552548e+05 2.40412906e+06
 1.67189223e+06 1.89699896e+06 1.33405479e+06 3.33878299e+06
 4.37661776e+05 2.09006809e+06 2.44695877e+06 1.65368993e+06
 2.88437983e+06 5.02961252e+06 1.84002601e+06 2.26181835e+06
 4.38511790e+05 6.49497481e+05 9.39676571e+05 1.74998019e+06
 1.61242901e+06 2.62123426e+06 7.66639670e+05 1.56210836e+06
 2.86459639e+06 5.66697186e+05 3.54691073e+06 2.69370989e+05
 3.82912388e+06 3.37837033e+06 1.98066407e+06 3.18225345e+06
 9.74247473e+05 1.75306814e+06 1.55180915e+06 2.91568266e+06] 1000
4
rock
"""
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-05-06 11:13:30  更:2022-05-06 11:14:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:01:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码