資源簡介 專題02 算法與問題解決【學習目標】理解算法的基本概念和重要性:學生應能夠解釋算法的定義,并認識到算法在解決問題中的作用。掌握算法的特征與要素:學生需要了解算法的五個基本特征(有窮性、可行性、確定性、輸入輸出),以及算法的三個核心要素(數(shù)據(jù)、運算、控制轉移)。學習不同的算法描述方法:學生應熟悉自然語言、流程圖、偽代碼和計算機程序設計語言等不同方式描述算法,并能根據(jù)實際問題選擇適當?shù)拿枋龇椒ā!舅季S導圖】【知識梳理】知識點一:數(shù)據(jù)整理(1)數(shù)據(jù)缺失:最簡單(忽略缺失值);常見(平均值、中間值、概率統(tǒng)計值)(2)數(shù)據(jù)重復:分析后合并或刪除(3)異常數(shù)據(jù):可能是沒用的噪聲,也可能是重要數(shù)據(jù)。(4)邏輯錯誤:屬性值和實際值不符。(5)數(shù)據(jù)格式不同:數(shù)據(jù)轉換知識點二:Excel1.公式及函數(shù)(1)公式必須以”=”開頭(2)公式及函數(shù)SUM(a1,a2,…,an) 求和 AVERAGE(a1,a2,…,an) 求平均數(shù)MIN(a1,a2,…,an) 求最小值 MAX(a1,a2,…,an) 求最大值單元格引用例:在E2單元格輸入:=(C2-B2)/$A2+D$2,復制公式到G4單元格,公式變?yōu)椋?br/>=(E4-D4)/$A4+F$2常見錯誤提示【題型精講】例1 12.排序(升序、降序)選擇區(qū)域:①選全部列②如果關鍵字是列A列B等,不選標題③避開合并單元格3.篩選①文本篩選:通配符(?表示任意一個字符。*表示任意多個字符)、包含、結尾是、開頭是②數(shù)字篩選:大于、小于、介于、自動篩選前10個(10/9/11/……個最大/最小的值)③篩選最大前三項,篩選出的記錄可能超過3項,并列項也會篩選出來④多條件篩選:選出女生中成績最好的三個,需要篩選‘女生’,排序選前三個,順序可反4.圖表(1)數(shù)據(jù)標簽:設置圖表上對應的各系列數(shù)據(jù)是否顯示數(shù)值(2)選定數(shù)據(jù)區(qū)域解題方法例2用UltraEdit軟件查看“2021高三加油!”的字符內(nèi)碼,部分界面如圖所示。①根據(jù)圖2中的X軸,確定數(shù)據(jù)區(qū)域A6:A9②根據(jù)圖2的圖例,確定數(shù)據(jù)區(qū)域C2:D2(如果圖例是“系列1,系列2”,則不包括C2:D2)③根據(jù)圖2圖表上對應的各系列的數(shù)據(jù),確定數(shù)據(jù)區(qū)域C2:D9④通過對稱(高平齊、長對正)確定數(shù)據(jù)區(qū)域A2⑤總區(qū)域為A2,A6:A9,C2:D2,C2:D9(3)圖表影響因素圖表會發(fā)生變化:①圖表相關單元格數(shù)據(jù)發(fā)生變化②圖表中的數(shù)據(jù)參加排序、篩選圖表不會發(fā)生變化:①修改單元格格式(特別是小數(shù)位數(shù))知識點三:大數(shù)據(jù)處理的基本思想和架構分治思想:一個大問題分成多個小問題靜態(tài)數(shù)據(jù):批處理計算舉例:3年內(nèi)學生的高考成績Hadoop架構:①HDFS:分布式文件系統(tǒng)將大規(guī)模數(shù)據(jù)以文件的形式保存,適合部署在廉價的機器上。應用:云盤、網(wǎng)盤的底層②Hbase:分布式數(shù)據(jù)庫建立在HDFS建立的基礎上,采用基于列的存儲方式,是谷歌BigTable的開源實現(xiàn)Hbase:分布式數(shù)據(jù)庫③MapReduce:分布式并行計算模型流數(shù)據(jù):流計算舉例:交通路況的實時更新軟件:Twitter圖數(shù)據(jù):圖計算舉例:社交網(wǎng)絡、傳染病的傳播路徑等實時處理+批處理軟件:SummingBird好處:縮短切換時間、減少系統(tǒng)開銷、降低使用成本知識點四:Pandas1.常用模塊①Numpy模塊:Python中做科學計算的基礎庫;②Scipy模塊:增強了在高等數(shù)學、信號處理、圖像處理、統(tǒng)計等方面的處理能力;③Pandas模塊:主要用于數(shù)據(jù)的處理和分析。2.導入:import pandas as pd3.數(shù)據(jù)結構:Series(一維數(shù)組:一列索引一列值)屬性:index(索引)、values(值)將178改成188:s2[‘s02’]=188或s2[1]=1884.數(shù)據(jù)結構:DataFrame(二維數(shù)組:一列索引多列值)(1)屬性:index(索引)、values(值)、columns(列標題)(2)獲取數(shù)值獲取第二行數(shù)據(jù):df1[1:2]獲取‘性別’列數(shù)據(jù):df1[‘性別’]或df1.性別獲取’性別’列第二行的數(shù)據(jù):df1.at[1,’性別’]或df1[‘性別’][1]篩選性別為女的數(shù)據(jù):df1[df1[‘性別’]==‘女’](3)函數(shù):見函數(shù)表知識點五:Matplotlib模塊繪圖1.導入:import matplotlib.pyplot as plt2.函數(shù):見函數(shù)表知識點六:文本數(shù)據(jù)處理1.典型的文本處理過程主要包括分詞、特征提取、數(shù)據(jù)分析、結果呈現(xiàn)等。2.中文分詞方法:基于詞典的分詞(jieba)、基于統(tǒng)計的分詞(上下文)、基于規(guī)則的分詞(試驗)。3.特征提取①特征詞:在中文文本分析中可以采用字、詞或短語作為表示文本的特征項。大多數(shù)中文文本分析中采用詞作為特征項。②特征提取目的:減少特征詞的數(shù)量。③方式:根據(jù)專家的知識挑選有價值的特征;用數(shù)學建模構造評估函數(shù)自動選取特征(大多)。4.文本數(shù)據(jù)分析與應用①標簽云:用詞頻表現(xiàn)文本特征,以文字大小的形式代表詞語的重要性。②文本情感分析:主要運用于網(wǎng)絡輿情監(jiān)控、用戶評論分析與決策、信息預測等。知識點七:數(shù)據(jù)可視化1.概念:指將數(shù)據(jù)以圖形、圖像等形式表示。2.可視化的基本方法有關時間趨勢的可視化:采用柱形圖、折線圖等。有關比例的可視化:采用餅圖、環(huán)形圖(也稱面包圈圖)等。有關關系的可視化:探究具有關聯(lián)性數(shù)據(jù)的分布關系,可以使用散點圖、氣泡圖等。有關差異的可視化:探尋包含多種變量的對象與同類之間的差異和聯(lián)系,采用雷達圖。有關空間關系的可視化:運用不同顏色或圖表直接在地圖上進行展示。【題型精講】例1算法在計算機科學領域內(nèi)指的是什么?A) 用計算機進行數(shù)值計算的步驟B) 用計算機解決非數(shù)值計算的數(shù)據(jù)處理C) 人執(zhí)行的算術運算D) 社會生活中各種事務的處理步驟【答案】B【講解】在計算機科學領域內(nèi),"算法"指的是用計算機解決問題的步驟,是為了解決問題而需要讓計算機有序執(zhí)行的、無歧義的、有限步驟的集合。這些需要解決的問題不僅包含了數(shù)值計算,還包含了非數(shù)值計算的數(shù)據(jù)處理。例如,在包含上萬人信息的數(shù)據(jù)中查找某人的數(shù)據(jù)、導航程序中兩個地點之間最短路線的規(guī)劃等。例2解釋算法的定義,并給出一個生活中的例子。【答案】算法是一系列解決問題或完成任務的明確、有序的步驟。這些步驟必須是有限的,且在現(xiàn)實環(huán)境中可以實施并完成。例如,學校在校園入口處擺放的“高一新生報到流程”示意圖就是一個算法,它幫助新生解決報到問題。【講解】算法自古有之,歐幾里得在《幾何原本》中提出的“輾轉相除法”就是算法的一個早期例子,它可以用來求出任意兩個正整數(shù)的最大公約數(shù)。該方法包括輸入兩個正整數(shù)、若第一個數(shù)小于第二個則交換值、用第一個數(shù)除以第二個數(shù)并取余數(shù)、若余數(shù)為0則輸出第二個數(shù)作為最大公約數(shù),否則繼續(xù)執(zhí)行特定步驟直至余數(shù)為0。【強化訓練】1.歐幾里得算法是用來做什么的?A) 求解一元二次方程的實數(shù)根B) 求兩個正整數(shù)的最大公約數(shù)C) 編寫計算機程序D) 設計學校課程表2.關于算法的描述,以下哪項是正確的?A) 所有算法必須使用自然語言描述B) 流程圖是描述算法的一種直觀方式C) 偽代碼比計算機程序設計語言更接近計算機能理解的語言D) 計算機程序設計語言是唯一能被計算機理解的語言3.“輾轉相除法”在計算兩個正整數(shù)最大公約數(shù)時,如果余數(shù)為0會發(fā)生什么?A) 輸出較小數(shù)作為最大公約數(shù)B) 繼續(xù)執(zhí)行直到余數(shù)不為0C) 結束算法并輸出任意一個數(shù)作為最大公約數(shù)D) 交換兩個數(shù)的值并重新計算4.根據(jù)文檔,下列哪個不是算法的特征?A) 有窮性B) 可行性C) 不確定性D) 輸入和輸出至少有一個5.用自然語言描述一個簡單的算法,例如如何煮意大利面。6.使用C++或Python編程語言,編寫一個程序來計算給定數(shù)字的平方根(假設輸入的數(shù)字總是正數(shù))。參考答案B【詳解】歐幾里得算法,也稱為輾轉相除法,是古代數(shù)學家歐幾里得在《幾何原本》中提出的,用于計算任意兩個正整數(shù)的最大公約數(shù)。該方法通過連續(xù)整除和取余操作來找出兩個數(shù)的最大公約數(shù)。2.B【詳解】流程圖是一種使用圖形符號表示規(guī)定操作并借助帶箭頭的流程線連接這些圖形符號來表示操作進行方向的圖表。它提供了一種直觀的方式來描述算法的結構。3.C【詳解】在使用輾轉相除法求兩個正整數(shù)m和n的最大公約數(shù)時,若余數(shù)r為0,則意味著當前的除數(shù)n即為兩數(shù)的最大公約數(shù),此時算法結束并輸出n的值。4.C【詳解】根據(jù)文檔內(nèi)容,算法具有有窮性、可行性、確定性、0個或多個輸入以及至少一個輸出等特征。不確定性并不是算法的特征之一。5.準備一鍋水,加熱至沸騰。加入適量的鹽和橄欖油。將意大利面放入沸水中,根據(jù)包裝上的指示時間煮熟(通常為7-10分鐘)。在煮面的同時,準備醬料。例如,可以炒蒜末、洋蔥和番茄醬,加入一些香料如干羅勒、迷迭香等。煮好的意大利面撈出,瀝干水分。將煮好的意大利面與醬料混合,攪拌均勻。可選地,撒上一些新鮮的香菜或巴馬干酪作為裝飾。享用美味的意大利面!【詳解】這個問題要求提供一個具體的自然語言描述的算法,通常這類問題的答案會包括具體操作步驟的描述。6.import mathdef calculate_square_root(number):return math.sqrt(number)# 示例number = float(input("請輸入一個正數(shù): "))if number < 0:print("錯誤:請輸入一個正數(shù)")else:result = calculate_square_root(number)print(f"{number}的平方根是: {result}")【詳解】大此題需要編寫代碼片段,通常這種問題的答案會包含函數(shù)定義、參數(shù)檢查、數(shù)學運算和邏輯判斷等編程元素。 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫