作業資訊
這個作業屬於哪個課程 | 2024-2025-1-計算機基礎與程式設計 |
---|---|
這個作業要求在哪裡 | <作業要求的連結>(https://www.cnblogs.com/rocedu/p/9577842.html#WEEK10) |
這個作業的目標 | 資訊系統 資料庫與SQL 人工智慧與專家系統 人工神經網路 模擬與離散事件 排隊系統 天氣與地震模型 圖形影像 |
作業正文 | https://www.cnblogs.com/tanzitian11/p/18578988 |
教材學習內容總結
資訊系統
資訊系統的定義與組成
定義:資訊系統是一個由人、硬體、軟體、網路和資料資源等組成的人機互動系統,其目的是收集、儲存、處理和分發資訊,以支援組織的決策、協調、控制、分析和視覺化等活動。
組成部分:
硬體:包括計算機伺服器、儲存裝置、輸入輸出裝置(如鍵盤、滑鼠、印表機、掃描器等)。這些硬體裝置是資訊系統的物理基礎,例如資料中心的伺服器叢集,用於儲存和處理海量的資料。
軟體:分為系統軟體(如作業系統、資料庫管理系統)和應用軟體(如財務管理軟體、客戶關係管理軟體)。系統軟體提供基本的執行環境,應用軟體則是針對特定業務功能開發的程式。以醫院資訊系統為例,其中的掛號軟體、病歷管理軟體等都是應用軟體,它們執行在作業系統之上。
資料:是資訊系統的核心資產,包括各種結構化(如資料庫中的表格資料)、半結構化(如 XML 格式的資料)和非結構化資料(如文件、影像、音訊影片等)。例如,電商平臺的使用者資訊、商品資訊、訂單資訊等都是重要的資料資源。
網路:用於連線資訊系統中的各個硬體裝置和使用者終端,實現資料的傳輸和共享。包括區域網(LAN)、廣域網(WAN)和網際網路。例如,一個跨國公司透過廣域網將其分佈在世界各地的分支機構的資訊系統連線起來,進行資料通訊和協同工作。
人員:包括系統開發人員、系統管理員、終端使用者等。系統開發人員負責構建和維護資訊系統;系統管理員負責系統的日常執行管理;終端使用者則是使用資訊系統來完成業務任務的人員。如企業的財務人員使用財務軟體進行賬目處理,他們就是資訊系統的終端使用者。
資訊系統的開發方法:
結構化方法:是一種傳統的開發方法,它強調系統開發過程的階段性和順序性。包括系統規劃、系統分析、系統設計、系統實施和系統維護等階段。每個階段都有明確的任務和交付成果,例如在系統分析階段,需要進行詳細的業務流程分析、資料流程分析,形成系統分析報告。這種方法的優點是開發過程規範,文件齊全,適合大型、複雜且需求相對穩定的系統開發;缺點是開發週期長,靈活性較差。
原型法:是一種快速開發方法,它首先構建一個系統的原型,這個原型通常只包含了目標系統的部分核心功能和基本架構。使用者可以透過使用這個原型,提出修改意見和新的需求,開發人員根據這些反饋對原型進行不斷的修改和完善,直到滿足使用者的需求。例如,在開發一個移動應用程式時,可以先製作一個簡單的原型,包含主要的介面和基本功能,讓使用者試用後提出改進意見,再逐步完善應用程式。這種方法的優點是能夠快速獲取使用者反饋,開發週期短,適合需求不明確的系統開發;缺點是可能會導致系統結構不夠最佳化,文件不夠完善。
物件導向方法:以物件為核心,將現實世界中的事物抽象為物件,物件具有屬性和行為。在開發過程中,透過封裝、繼承和多型等機制,構建軟體系統。例如,在開發一個圖形繪製軟體時,可以將各種圖形(如圓形、矩形)抽象為物件,每個物件都有自己的屬性(如顏色、大小)和行為(如繪製、移動)。這種方法的優點是符合人類的思維方式,可維護性和可擴充套件性強;缺點是對開發人員的技術要求較高,開發過程相對複雜。
資訊系統的生命週期:
系統規劃階段:主要任務是確定資訊系統的戰略目標、範圍和總體結構,進行可行性研究。例如,企業考慮開發一個新的客戶關係管理系統,在這個階段需要分析企業的戰略需求、市場環境,評估開發該系統在技術、經濟和操作等方面的可行性。
系統分析階段:對現有系統進行詳細的調查和分析,包括業務流程、資料流程、使用者需求等。透過收集和整理這些資訊,建立系統的邏輯模型。例如,在分析企業的銷售業務流程時,需要明確從客戶詢價、下單、發貨到收款等各個環節的資料流向和處理方式。
系統設計階段:根據系統分析階段得到的邏輯模型,設計系統的物理架構,包括硬體配置、軟體架構、資料庫設計等。例如,設計資料庫的表結構、欄位型別,確定軟體系統的模組劃分和介面設計。
系統實施階段:包括系統的程式設計開發、測試、安裝和培訓等工作。例如,開發人員按照系統設計文件進行程式碼編寫,然後進行單元測試、整合測試和系統測試,確保系統的質量;同時對使用者進行系統操作培訓,以便使用者能夠正確使用系統。
系統維護階段:在系統投入執行後,需要對系統進行日常的維護和管理,包括硬體維護、軟體更新、資料備份等。例如,定期對伺服器進行硬體檢查和維護,及時更新軟體系統的補丁,防止安全漏洞,定期備份重要的資料,以防止資料丟失。
資訊系統的安全與隱私:
安全威脅:包括網路攻擊(如駭客入侵、病毒感染、分散式拒絕服務攻擊等)、資料洩露、系統故障等。例如,駭客可能會透過網路漏洞入侵企業的資訊系統,竊取客戶資料或者破壞系統的正常執行。
安全措施:包括技術措施(如防火牆、加密技術、入侵檢測系統等)和管理措施(如制定安全政策、人員培訓、訪問控制等)。防火牆可以阻止未經授權的網路訪問,加密技術可以保護資料在傳輸和儲存過程中的安全性,入侵檢測系統能夠及時發現和報警異常的網路活動;同時,透過制定嚴格的安全政策,對員工進行安全培訓,合理設定使用者的訪問許可權等管理措施,也可以有效提高資訊系統的安全性。
隱私保護:主要涉及對個人資訊和敏感資料的保護。在資訊系統的執行過程中,會收集大量的個人資訊,如使用者的姓名、聯絡方式、財務資訊等,需要採取措施確保這些資訊不被非法獲取和濫用。
電子製表軟體
基本操作:
單元格操作:包括選擇單元格(可以單個選擇、連續區域選擇或不連續區域選擇)。例如,要選擇多個相鄰的單元格,可以透過滑鼠拖動來實現;要選擇不相鄰的單元格,可以按住 Ctrl 鍵再用滑鼠點選目標單元格。單元格還可以進行合併與拆分,用於製作標題等特殊格式。例如,將表格的標題行單元格合併,可以使標題更醒目。
工作表操作:可以對工作表進行新建、刪除、重新命名、移動和複製等操作。在處理多個相關表格時,這些操作非常有用。例如,一個財務報表可能包含多個工作表,分別用於記錄不同月份的收支情況,透過複製工作表可以快速建立新的月份表格模板。
資料輸入與格式設定
資料輸入技巧:
快速填充資料:當輸入有規律的資料時,如序列(1、2、3...)、日期序列等,可以使用自動填充功能。通常只需輸入起始資料,然後將滑鼠指標移至單元格右下角的填充柄(一個小方塊),按住滑鼠左鍵拖動即可自動填充後續資料。例如,在 A 列輸入 “星期一”,然後拖動填充柄可以快速填充一週的日期。
資料格式設定:
數值格式:可以設定數值的小數位數、是否使用千位分隔符、貨幣符號等。
日期和時間格式:根據不同的國家和使用場景,日期和時間有多種格式可供選擇。例如,“yyyy - mm - dd”(年 - 月 - 日)或 “mm/dd/yyyy”(月 / 日 / 年)等格式。
文字格式:對於文字資料,可以設定字型、字號、顏色、對齊方式(左對齊、右對齊、居中對齊)等。
公式與函式進階知識
公式引用方式:
相對引用:在公式中,單元格的引用預設是相對引用。當複製或填充公式時,引用的單元格會根據目標單元格的位置自動相對變化。例如,在單元格 B2 中輸入公式 “=A2 * 2”,然後將 B2 單元格的公式向下填充到 B3,B3 中的公式會自動變為 “=A3 * 2”。
絕對引用:當在公式中不希望引用的單元格隨著公式的複製而改變時,可以使用絕對引用。絕對引用透過在列標和行號前新增 “符號來實現。例如,在單元格中輸入公式
A\(2 * B2”,無論將 C2 中的公式如何複製,始終引用 A2 單元格的值。
**混合引用:**是相對引用和絕對引用的結合,即列標或行號其中一個是絕對引用,另一個是相對引用。例如,“\)A2”表示列標A是絕對引用,行號是相對引用;“A$2” 表示行號 2 是絕對引用,列標是相對引用。
函式巢狀與陣列函式:
函式巢狀:一個函式的引數可以是另一個函式的結果。例如,在計算員工獎金時,獎金根據銷售額和完成率來計算,可能會用到巢狀函式,如 “=IF (AND (銷售額> 10000, 完成率 > 0.8), SUM (基本工資 * 0.3),0)”,這裡 IF 函式內部巢狀了 AND 函式和 SUM 函式。
陣列函式:可以對一組或多組資料進行操作,而不是單個單元格。例如,使用 SUMIFS 函式可以在滿足多個條件的陣列資料中求和。
資料庫管理系統(DBMS)的基本概念
定義:資料庫管理系統是一種操縱和管理資料庫的大型軟體,用於建立、使用和維護資料庫。它對資料庫進行統一的管理和控制,以確保資料的安全性、完整性和一致性。例如,MySQL、Oracle、SQL Server 等都是常見的資料庫管理系統。
關係模型的基本概念
關係的定義:在關係模型中,資料被組織成二維表格的形式,這種表格稱為關係。
元組和屬性:
元組(Tuple):關係中的一行資料稱為一個元組,它對應著一個實體的例項。在學生資訊表中,每一個學生的完整資訊(如學號為 1001,姓名為張三,年齡為 20 歲,性別為男)構成一個元組。
屬性(Attribute):關係中的一列稱為一個屬性,用於描述實體的某個特徵。如學生資訊表中的 “學號”“姓名”“年齡”“性別” 等都是屬性。
域(Domain):屬性的取值範圍稱為域。例如,學生年齡屬性的域可能是大於等於 18 歲且小於等於 40 歲的整數,姓名屬性的域則是字串集合。
結構化查詢語言(SQL)概述
定義與用途:SQL 是一種用於管理關係型資料庫的標準語言。它可以用於資料庫的建立、資料的插入、更新、刪除和查詢等操作。
SQL 的特點:
非過程性語言:SQL 在執行操作時,使用者只需指定 “做什麼”,而不必關心 “怎麼做”。資料庫管理系統會根據 SQL 語句自動確定執行的具體步驟。
統一的語言標準:雖然不同的資料庫管理系統(如 MySQL、Oracle、SQL Server 等)在實現細節和功能擴充套件上有所差異,但都遵循基本的 SQL 標準。這使得使用者在學習和使用 SQL 時,能夠在不同的資料庫環境中具有一定的通用性。
功能強大:SQL 能夠實現複雜的資料操作和管理功能,包括資料定義(建立資料庫、表、檢視等)、資料操縱(插入、更新、刪除和查詢資料)、資料控制(使用者許可權管理)和事務處理等。
人工智慧
圖靈測試
定義:圖靈測試是由英國電腦科學家艾倫・圖靈於 1950 年提出的一種用於判斷機器是否具有智慧的測試方法。測試過程中,有一個詢問者、一臺機器和一個人,詢問者透過一些裝置(如鍵盤、螢幕等)向機器和人提出各種問題,在經過一系列提問後,如果詢問者無法區分回答者是機器還是人,那麼就認為這臺機器透過了圖靈測試,具備了某種程度的智慧。
背景:在電腦科學發展初期,對於 “機器能否思考” 這一問題存在諸多爭議。圖靈試圖透過一種可操作的測試方法來探討機器智慧的可能性。當時的科技界對於智慧的本質和如何衡量機器的智慧還沒有清晰的標準,圖靈測試的出現為人工智慧領域提供了一個重要的研究方向和衡量標準。
測試的具體過程
環境設定:通常測試在一個封閉的環境中進行,詢問者與機器和人被隔離,透過文字方式進行交流,例如透過打字輸入問題並接收回答。這樣做是為了避免詢問者透過外貌、聲音等非文字因素來判斷回答者的身份。
提問環節:詢問者可以提出各種各樣的問題,包括常識性問題(如 “天空為什麼是藍色的?”)、邏輯性問題(如 “如果 A 大於 B,B 大於 C,那麼 A 和 C 的關係是什麼?”)、情感性問題(如 “你會感到悲傷嗎?”)、創造性問題(如 “請寫一首關於春天的詩”)等。機器和人都要對這些問題進行回答。
判斷階段:經過一段時間的提問後,詢問者根據機器和人的回答來判斷哪個是機器,哪個是人。如果詢問者猜對的機率不高於隨機猜測的機率(通常認為是 50%),那麼就認為機器透過了圖靈測試。
圖靈測試的意義
引發對智慧本質的思考:促使人們深入思考智慧的真正含義。它讓人們意識到,智慧不僅僅是簡單的計算能力,還包括理解、推理、創造等多種複雜的認知能力。透過圖靈測試也引發了哲學、心理學等多個領域對於人類智慧和機器智慧邊界的討論。
衡量機器智慧的一種標準:儘管圖靈測試存在一定的侷限性,但它在很長一段時間內是衡量機器智慧水平的重要參考標準。它為比較不同機器系統的智慧程度提供了一種相對客觀的方法,並且在人工智慧的發展歷程中,許多研究成果都是以是否能夠透過圖靈測試或者在圖靈測試中表現更好為目標來進行評估的。
語義網的定義與背景
定義:語義網是一種能夠讓計算機理解和處理資料語義(含義)的網路技術。
語義網的關鍵技術
資源描述框架(RDF):
定義:RDF 是一種用於描述網路資源的框架,它以三元組(主語、謂語、賓語)的形式來表示資源及其之間的關係。例如,對於 “《哈姆雷特》是莎士比亞所著” 這一資訊,可以用 RDF 三元組表示為(《哈姆雷特》,作者,莎士比亞)。其中 “《哈姆雷特》” 是主語,表示資源;“作者” 是謂語,表示關係;“莎士比亞” 是賓語,也是一種資源。
作用:RDF 提供了一種統一的方式來描述資源,使得不同來源的資訊可以用相同的結構進行表示,方便計算機進行處理和整合。它是語義網的資料模型基礎,能夠將各種網路資源轉化為計算機可理解的結構化資料。
檢索樹(Search Tree)的定義與基本概念
定義:檢索樹是一種用於資料儲存和檢索的資料結構,它以樹狀結構組織資料元素,透過在樹的節點之間建立特定的順序關係,使得資料的查詢、插入和刪除操作能夠高效地進行。例如,二叉檢索樹(Binary Search Tree,BST)是最常見的一種檢索樹,它的每個節點最多有兩個子節點,並且對於樹中的任意節點,其左子樹中的所有節點的值都小於該節點的值,右子樹中的所有節點的值都大於該節點的值。
專家系統的定義與基本結構
定義:專家系統是一種基於知識的計算機程式系統,它能夠模擬人類專家在特定領域的知識和經驗,透過推理和判斷來解決複雜的問題。
基本結構:
知識庫(Knowledge Base):是專家系統的核心部分,用於儲存領域內的專業知識和經驗規則。這些知識可以是事實性知識(如疾病的症狀、藥物的特性等),也可以是啟發性知識(如專家的經驗判斷、診斷策略等)。知識庫的知識通常以規則、框架、語義網路等形式表示。
推理機(Inference Engine):推理機是專家系統的 “思維” 部件,它根據知識庫中的知識和使用者提供的問題相關資訊,運用推理方法來得出結論。推理方法主要包括正向推理(從已知事實出發,推匯出結論)、反向推理(從目標結論出發,尋找支援結論的事實)和混合推理。
知識獲取模組(Knowledge Acquisition Module):負責從領域專家那裡獲取知識,並將其轉換為適合知識庫儲存的形式。這個過程可能包括知識的整理、分類和形式化。
解釋模組(Explanation Module):用於向使用者解釋專家系統得出結論的過程和依據。這有助於增加使用者對系統的信任度。
人機介面(Man - Machine Interface):是使用者與專家系統進行互動的介面,用於輸入問題和相關資訊,以及接收專家系統的輸出結果和解釋。人機介面可以是命令列介面、圖形介面等形式。
人工神經網路的定義與基本概念
定義:人工神經網路(Artificial Neural Network,ANN)是一種模仿生物神經網路(如人類大腦中的神經元網路)結構和功能的計算模型。它由大量的簡單神經元(也稱為節點或單元)相互連線而成,透過調整神經元之間連線的權重,使網路能夠對輸入資料進行學習和處理,從而實現對各種複雜任務的建模,如分類、迴歸、模式識別等。
自然語言處理(NLP)的定義與基本概念
定義:自然語言處理是電腦科學與語言學的交叉學科,旨在讓計算機能夠理解、生成和處理人類自然語言。
語言層次:
詞彙層(Lexical Level):處理自然語言最基本的單元 —— 詞彙。包括詞彙的識別、詞性標註、詞形還原等。例如,在英語句子 “The dogs are running.” 中,識別出 “dogs” 是名詞複數形式,其原形是 “dog”,並且標註出 “running” 是動詞的現在分詞形式,這些都屬於詞彙層的處理。
句法層(Syntactic Level):關注句子的結構,分析句子中單詞之間的語法關係。例如,透過句法分析可以確定句子 “The boy who is reading a book is my brother.” 的結構,如識別出 “who is reading a book” 是一個定語從句,用於修飾 “the boy”。
語義層(Semantic Level):主要研究句子的語義理解,包括詞彙語義(如一詞多義的理解)和句子語義(如判斷句子的真假、語義角色標註等)。例如,在句子 “Time flies like an arrow.” 中,語義分析需要理解 “time” 在這裡是 “時光” 的意思,而不是 “次數”,並且理解整個句子表達時光流逝很快的意思。
語用層(Pragmatic Level):考慮語言使用的上下文和意圖。例如,當有人說 “It's cold in here.”,在不同的語境下可能是請求開啟暖氣、抱怨天氣或者只是一種陳述,語用層的處理就是要理解這種語言背後的意圖。
機器人學的定義與基本概念
定義:機器人學是一門綜合學科,涉及機械工程、電子工程、電腦科學、控制理論、人工智慧等多個領域,主要研究機器人的設計、製造、操作和應用。其目標是開發能夠自主或半自主執行任務的機器系統,這些任務可以包括工業生產、醫療手術、太空探索、家庭服務等諸多領域。
模擬、圖形學、遊戲和其他應用
模擬:設計複雜系統的模型併為觀察結果而對該模型進行實驗。
模型的定義與基本概念
定義:模型是對現實世界中系統、過程、現象等的一種抽象表示,它用於簡化和理解複雜的實際事物。透過選擇重要的因素和關係,忽略次要的細節,模型能夠以一種更易於處理和分析的方式來描述研究物件。例如,在建築設計中,建築模型是對實際建築物的縮小表示,它展示了建築物的外觀、內部結構、空間佈局等重要特徵。
排隊系統的定義與基本概念
定義:排隊系統是一種用於描述顧客(可以是人、物體、任務等)到達服務設施,在等待佇列中等待服務,然後接受服務並離開的系統。它由顧客源、到達過程、排隊規則、服務機構和服務過程等部分組成,是研究資源分配和服務效率的重要模型。
氣象模型是對大氣運動和氣象變化規律進行模擬與預測的重要工具。它基於數學物理方程,綜合考慮大氣動力、熱力、水汽等多種因素及相互作用。透過對全球或特定區域的氣象要素,如氣壓、溫度、溼度、風速等進行網格劃分與數值計算,構建複雜的計算模型。
計算機圖形學的定義與基本概念
定義:計算機圖形學是研究如何利用計算機生成、處理和顯示圖形的學科。它涉及到數學、物理學、電腦科學等多個領域的知識,透過演算法和資料結構來描述、構造和操作圖形物件,其目的是在計算機螢幕、印表機等輸出裝置上生成高質量的圖形和影像。
計算機遊戲的定義與型別
定義:計算機遊戲是一種透過計算機程式執行,以娛樂為主要目的的軟體。它利用計算機的處理能力、圖形顯示、音訊輸出等功能,為玩家創造出虛擬的遊戲世界和遊戲體驗。玩家可以透過輸入裝置(如鍵盤、滑鼠、手柄等)與遊戲進行互動,根據遊戲規則完成各種任務、挑戰或目標。
計算機遊戲的技術要素
遊戲引擎:
定義與功能:遊戲引擎是遊戲開發的核心框架,它整合了一系列用於遊戲開發的工具和元件。包括圖形渲染引擎,用於將遊戲中的場景和角色渲染成視覺化的影像;物理引擎,模擬物體的運動、碰撞等物理現象;音訊引擎,處理遊戲中的音效和背景音樂;指令碼引擎,用於編寫遊戲邏輯和事件處理。例如,Unity 遊戲引擎的圖形渲染系統可以實現高質量的 3D 圖形渲染,其物理引擎可以模擬真實的物體碰撞和運動軌跡。
c語言學習
指標的定義與基本概念
定義:指標是一種變數,其值為另一個變數的地址。就好像它是一個指向其他資料儲存位置的 “指示器”。在 C 語言中,透過指標可以間接訪問和操作儲存在記憶體中的資料。例如,我們可以定義一個整型指標int ptr;,這個指標可以用來儲存一個整型變數的地址。
記憶體地址與指標變數:
記憶體地址:計算機的記憶體就像是一個巨大的 “房間” 陣列,每個位元組都有一個唯一的編號,這個編號就是記憶體地址。當我們定義一個變數時,它會被儲存在記憶體中的某個位置,這個位置就有一個對應的地址。例如,定義一個變數int num = 10;,num在記憶體中有一個確定的地址。
指標變數的儲存:指標變數專門用於儲存其他變數的記憶體地址。它本身也佔據一定的記憶體空間,在 32 位系統中,指標變數通常佔用 4 個位元組,在 64 位系統中,一般佔用 8 個位元組。例如,int ptr;這個指標變數會在記憶體中有自己的儲存位置,用來存放它所指向變數的地址。
指標的宣告與初始化
宣告方式:**指標變數的宣告需要指定它所指向的資料型別。基本形式是資料型別 *指標變數名;。例如,float *fp;宣告瞭一個可以指向float型別資料的指標fp;char *cp;宣告瞭一個指向char型別資料的指標cp。
初始化方法:
賦值地址:可以透過取地址運算子&將一個變數的地址賦給指標來初始化它。例如,int num = 20; int *p = #,這裡p被初始化為num的地址,透過p就可以訪問num的值。
NULL 指標初始化:指標可以初始化為NULL,它表示指標不指向任何有效的記憶體地址。例如,int p = NULL;在使用指標之前將其初始化為NULL是一個良好的程式設計習慣,可以避免一些潛在的錯誤,比如野指標的出現。
指標的運算
算術運算:
指標的加法和減法:當指標指向一個陣列元素時,指標的加法和減法運算就非常有用。如果p是一個指向陣列元素的指標,p + 1將指向陣列中的下一個元素,p - 1則指向前一個元素。不過要注意,指標的算術運算不是簡單的整數相加或相減,它是根據指標所指向的資料型別的大小來進行計算的。例如,對於int型別的指標,p + 1實際上是將p的地址值增加sizeof(int)個位元組。
指標與整數的乘法和除法在 C 語言中是不允許的:因為這種運算在指標所代表的語義下沒有實際意義。
比較運算:可以使用比較運算子(==、!=、<、>、<=、>=)來比較兩個指標。比較指標通常用於判斷它們是否指向同一個記憶體位置或者在記憶體中的相對位置。例如,在遍歷陣列時,可以透過比較指標和陣列末尾的地址來確定是否已經遍歷完整個陣列。
指標與陣列
陣列名作為指標:在 C 語言中,陣列名在很多情況下可以看作是一個指標常量,它的值是陣列的首地址。例如,對於陣列int arr[5];,arr和&arr[0]是等價的,它們都表示陣列arr的第一個元素的地址。
透過指標訪問陣列元素:可以使用指標來訪問陣列中的元素。例如,(arr + i)和arr[i]是等價的,它們都可以訪問陣列arr中的第i個元素。這是因為陣列元素在記憶體中是連續儲存的,透過指標的加法運算可以方便地訪問到不同位置的元素。
指標陣列:是一個陣列,其元素是指標。例如,int *ptr_array[5];定義了一個包含 5 個元素的指標陣列,每個元素都可以指向一個int型別的變數或者陣列。這種資料結構在處理多個字串或者動態分配的陣列等情況時非常有用。
指標與函式
函式引數傳遞指標:在 C 語言中,函式可以透過指標來傳遞引數,這樣可以在函式內部修改外部變數的值。例如,有一個函式void swap(int *a, int *b),透過傳遞兩個整型指標,可以在函式內部交換這兩個指標所指向變數的值。
函式返回指標:函式可以返回一個指標。例如,int *create_array(int size),這個函式可以動態分配一個整型陣列的記憶體空間,並返回指向這個陣列的指標。不過要注意,返回的指標必須指向有效的記憶體區域,避免返回區域性變數的指標,因為區域性變數在函式結束後其記憶體空間會被釋放。
多級指標
定義與概念:多級指標是指指標的指標。例如,int **pp;是一個二級指標,它可以用來儲存一個一級指標(也就是普通指標)的地址。如果p是一個一級指標,那麼pp = &p;是合法的操作。
應用場景:多級指標在處理複雜的資料結構,如二維陣列或者動態分配的多維陣列時非常有用。例如,在處理二維陣列int arr[3][4];時,可以使用二級指標來動態分配記憶體並訪問陣列元素。
教材學習中的問題和解決過程(先問 AI)
- 問題1:我看了這一段文字 “專家系統由知識庫、推理機等部分組成,能夠模擬人類專家在特定領域的知識和經驗來解決問題”,有這個問題 “如何確保專家系統知識庫的知識準確性和完整性?”。我查了資料,有這些說法 “可以透過領域專家稽核、多源知識融合、定期更新知識等方法來保障”。根據我的實踐,我得到這些經驗 “在構建一個小型醫療診斷專家系統時,發現讓多個醫生稽核知識能減少錯誤,但不同醫生的觀點有時難以統一”。但是我還是不太懂,我的困惑是 “當領域專家意見不一致時,如何確定知識庫中的知識內容才是最合理的?”
- 問題2:看了這一段文字 “人工神經網路由大量神經元相互連線而成,透過調整連線權重進行學習和處理任務”,有這個問題 “在神經網路訓練過程中,如何避免過擬合現象?”。我查了資料,有這些說法 “可以採用增加資料量、正則化方法、提前停止訓練等策略來防止過擬合”。根據我的實踐,我得到這些經驗 “在訓練影像分類神經網路時,增加資料量和使用 L2 正則化有一定效果,但有時難以確定正則化引數的最佳值”。但是我還是不太懂,我的困惑是 “如何根據不同的神經網路結構和資料特點,精準確定正則化引數等防止過擬合的措施?”
基於AI的學習
學習進度條
程式碼行數(新增/累積) | 部落格量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第七週 | 200/200 | 1/2 | 20/20 | |
第八週 | 300/500 | 1/4 | 18/38 | |
第九周 | 500/1000 | 0/7 | 22/60 | |
第十週 | 700/1300 | 1/9 | 30/90 |