2012 NOI 普及组初赛试题解析

需积分: 11 0 下载量 157 浏览量 更新于2024-08-05 收藏 445KB PDF 举报
"这是2012年全国信息学奥赛初赛试题的资料,主要针对普及组,适合C++编程学习者。试卷涵盖计算机基础知识,包括计算机芯片原料、软件功能识别、市场占有率高的电脑硬件厂商、网络分层模型的解释以及计算机科学中的排序算法、早期计算机类型、递归调用问题和CPU寻址能力等知识点。" 1. 计算机芯片制造的主要原料是(A、硅)。硅是集成电路的基础材料,可以从沙子中提炼出来。 2. 主要用于显示网页服务器或文件系统HTML文件内容,并让用户与文件交互的软件是(B、浏览器)。如Chrome、Firefox等,它们能够解析和渲染HTML内容,实现用户与网页的互动。 3. 目前个人电脑的(B、CPU)市场占有率最靠前的厂商包括Intel和AMD。这两个公司是全球知名的中央处理器制造商。 4. 网络分层模型可以用现实生活的例子来比喻,比如(A、中国公司的经理与法国公司的经理交互商业文件)。这个例子形象地展示了不同层次的角色对应网络中的不同协议层,从数据传输到应用交互。 5. 如果不在快速排序中引入随机化,可能会导致(D、排序时间退化为平方级)。快速排序的平均时间复杂度是O(nlogn),但如果序列已经部分排序,未使用随机化可能导致最坏情况,即时间复杂度退化为O(n^2)。 6. 1946年诞生的ENIAC是(A、电子管)计算机。它是世界上第一台通用电子数字计算机,使用了大量的电子管。 7. 在程序运行中,递归调用层数过多会导致(A、系统分配的栈空间溢出)。因为每次函数调用都会占用栈空间,递归过深会导致栈空间耗尽,引发错误。 8. 地址总线为32位,理论上最大可寻址的内存空间为(4GB)。计算方法是2的32次方,即4,294,967,296字节,通常1字节等于8位,所以是4GB的内存。 这些题目涉及了计算机硬件、操作系统、网络基础、算法以及计算机历史等多个方面的知识,对于准备信息学奥赛或者学习C++编程的学生来说,是很好的练习和复习材料。通过解答这些问题,可以深化对计算机科学基本概念的理解。

from sklearn.datasets import load_iris from sklearn. model_selection import train_test_split from sklearn.metrics import classification_report from sklearn. neighbors import KNeighborsClassifier from sklearn. metrics import roc_curve, auc import matplotlib.pyplot as plt from sklearn. metrics import confusion_matrix import seaborn as sns import scikitplot as skplt #加载数据集 iris = load_iris() data = iris['data'] label = iris['target'] #数据集的划分 x_train,x_test,y_train,y_test = train_test_split(data,label,test_size=0.3) print(x_train) #模型构建 model = KNeighborsClassifier(n_neighbors=5) model.fit(x_train,y_train) #模型评估 #(1)精确率,召回率,F1分数,准确率(宏平均和微平均) predict = model. predict(x_test) result = classification_report(y_test,predict) print(result) # (2) 混淆矩阵 confusion_matrix = confusion_matrix(y_test, predict) print('混淆矩阵:', confusion_matrix) sns.set(font_scale=1) sns.heatmap(confusion_matrix, annot=True, annot_kws={"size", 16}, cmap=plt.cm.Blues) plt.title('Confusion Matrix') plt.ylabel('True label' ) plt.xlabel('Predicted label') plt.savefig('Confusion matrix. pdf') plt.show() #(3)ROC曲线 Y_pred_prob = model. predict_proba(x_test) plt.figure(figsize= (7,7)) ax= plt. subplot() skplt.metrics.plot_roc_curve(y_test,Y_pred_prob,ax= ax) ax.set_xlabel('False Positive Rate', fontsize = 20) ax.set_ylabel('True Positive Rate ',fontsize = 20) ax.set_title('ROC Areas ',fontsize = 20) plt.xlim((0, 1)) plt.ylim((0, 1)) plt.xticks(fontsize = 18) plt.yticks(fontsize = 18) plt.legend(fontsize =18) plt.savefig(' ROC.pdf') plt.show( ) #(4)P_R曲线 from sklearn.metrics import precision_recall_curve precision, recall, _ =precision_recall_curve(y_test) plt.fill_between(recall, precision,color='b') plt.xlabel('Recall') plt.ylabel('Precision') plt.ylim([0.0, 1.0]) plt.xlim([0.0, 1.0]) plt.plot(recall, precision) plt.title("Precision-Recall") plt.show()

2023-04-20 上传