專業課復習筆記 9

前言

學爽了。

為什么哈希函數的空間復雜度是 O(N)

我們實際使用的電話號碼的數目是 N ,理論上至多有 R 個電話號碼,桶數組 bucket array 的容量是 M ,滿足條件 N < M < < R N<M<<R N<M<<R,因為動態擴容之類的原因,可以始終保證 N 和 M 是同階的,那么空間復雜度就是
O ( N + M ) = O ( N ) O(N+M)=O(N) O(N+M)=O(N)

hash 散列實例

maybe 取余之后 hash(key) 是不同的,那么皆大歡喜,假設取余之后相同呢,那就發生沖突了,collision .實際上類似于,我說我是六一兒童節這天生日,然后另一個人說我也是六一兒童節生日,然后我們兩的生日就沖突了。沖突了就需要處理沖突。或者這里我們可以認為是出現了同義詞。明明是不同的 key ,卻出現了相同的 hash(key), 然后我們映射的時候也是按照 hash(key) 去映射 value 的。一般的情況不同的 key 對應不同的 value, 當然也不是說不同的 key 不能對應相同的 value, 是說這里不行。一個電話號碼不能既是 A 的,又是 B 的。

裝填因子 load factor

l o a d f a c t o r : λ = N M load\ factor:\lambda=\frac N M load?factor:λ=MN?
怎么選 load factor 呢。非常糾結啊。到底有沒有標準答案。

單射 injection

完美散列,perfect hashing .不同的輸入一定對應不同的輸出,也就是唯一映射。這個我印象很深刻,實際上就是高數教材第一章的內容,我高考完的暑假試圖搞清楚一些東西,但是因為學的太仔細,然后也看不懂,然后也沒有正反饋,當時花了很大的力氣,學了第一章的內容,也沒學明白,所以對我個人來說最好是高頻率,多輪次,完成比完美更重要,不要在瑣碎的細節上面浪費過多的時間,先把主體框架搭建好。

目標

選擇沖突小的散列函數,散列就是 hash, 還有一個目標是處理沖突。

除余法

k e y % M key \% M key%M

散列表長一般就是 M ,現實中一般不是理想隨機。

規律

next token prediction 。下一詞元預測,實際上就是局部性。

除余法的缺陷

h a s h ( 0 ) ≡ 0 hash(0)\equiv0 hash(0)0
相鄰關鍵碼的散列地址必相鄰。

MAD 法

multiply add divide

h a s h ( k e y ) = ( a ? k e y + b ) % M hash(key)=(a*key+b)\%M hash(key)=(a?key+b)%M

散列的方法的要求

越是隨機,越是沒有規律越好。

偽隨機數法

h a s h ( k e y ) = r a n d ( k e y ) = [ r a n d ( 0 ) ? a k e y ] % M hash(key)=rand(key)=[rand(0)*a^{key}]\%M hash(key)=rand(key)=[rand(0)?akey]%M
r a n d ( 0 ) = ? rand(0)=? rand(0)=?
取決于偽隨機數發生器,因具體平臺,不同的歷史版本而異。

可移植性比較差。

就地隨機置亂

20 ! < 2 64 < 21 ! 20!<2^{64}<21! 20!<264<21!

hashcode

沖突難以杜絕,所以要解決沖突。發生沖突的時候要想辦法排解沖突。

最后

從今天開始,晚上十點半之后就不學習了,爭取晚上十一點就睡覺,早睡從我做起。。。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/79630.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/79630.shtml
英文地址,請注明出處:http://en.pswp.cn/web/79630.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【論文閱讀27】-TCN–BiLSTM -滑坡預測

《A Landslide Displacement Prediction Model Based on the ICEEMDAN Method and the TCN–BiLSTM Combined Neural Network》 發表于 Water 期刊&#xff0c;2023年。 &#x1f4cc; 主要內容概述 這篇論文提出了一種滑坡位移預測模型&#xff0c;結合了&#xff1a; ICEEM…

8b10b編解碼仿真

一、基本概念 8B/10B編碼&#xff08;8-bit to 10-bit encoding&#xff09;是一種將8位數據&#xff08;包括數據字符和控制字符&#xff09;轉換為10位符號&#xff08;Symbol&#xff09;的編碼技術&#xff0c;由IBM工程師Al Widmer和Peter Franaszek于1983年提出。其核心思…

23龍信服務器wp

中規中矩的一套服務器&#xff0c;比較簡單 1.服務器系統的版本號是___。&#xff08;格式&#xff1a;1.1.1111&#xff09; 2.網站數據庫的版本號是___。&#xff08;格式&#xff1a;1.1.1111&#xff09; 3.寶塔面板的“超時”時間是___分鐘。&#xff08;格式&#xff1a;…

Redis 存儲原理與數據模型(三)

目錄 存儲結構 存儲轉換 數據組織 hash 沖突 負載因子 擴容 縮容 漸進式rehash Redis 線程模型 單線程命令處理機制 為什么Redis 命令的單線程快 機制 優化 柔性數組 Redis reactor_io 多線程網絡模型 存儲結構 key-value鍵值對通過 hash 的方式存儲到數組中value 主要…

langchain4j中使用milvus向量數據庫做RAG增加索引

安裝milvus向量數據庫 官方網址 https://milvus.io/zh 使用docker安裝milvus mkdir -p /data/docker/milvus cd /data/docker/milvus wget https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh#在docker中啟動milvus sh standalone_emb…

UE5.3 C++ 房屋管理系統(一)

一.框架思路 1.如何加載。房屋管理&#xff0c;既然管理。就存在動態加載&#xff0c;和靜態加載的考慮。如果是靜態加載&#xff0c;就是在編輯器情況下放置&#xff0c;但這樣方便了擺放&#xff0c;但管理就需要在開始是將所有的房屋找到加到管理者里。你無法決定拖入場景的…

4.1【LLaMA-Factory 實戰】醫療領域大模型:從數據到部署的全流程實踐

【LLaMA-Factory實戰】醫療領域大模型&#xff1a;從數據到部署的全流程實踐 一、引言 在醫療AI領域&#xff0c;構建專業的疾病診斷助手需要解決數據稀缺、知識專業性強、安全合規等多重挑戰。本文基于LLaMA-Factory框架&#xff0c;詳細介紹如何從0到1打造一個垂直領域的醫…

解決LangChain4j報錯HTTP/1.1 header parser received no bytes

問題描述 當使用langchain4j-open-ai調用自己部署的大模型服務時報錯&#xff1a; public static void main(String[] args) {OpenAiChatModel model OpenAiChatModel.builder().apiKey("none").modelName("qwen2.5-instruct").baseUrl("http://19…

阿里云codeup以及本地gitclone+http

cmd命令行亂碼問題、解決 chcp 65001 git代碼提交 git add . git commit -m init git push origin master

2025.05.07-淘天算法崗-第二題

?? 點擊直達筆試專欄 ??《大廠筆試突圍》 ?? 春秋招筆試突圍在線OJ ?? 筆試突圍OJ 02. 完美拼圖挑戰 問題描述 A先生是一位拼圖愛好者,他有兩種形狀的拼圖塊: a a a

Spring Boot中Redis序列化配置詳解

精心整理了最新的面試資料和簡歷模板&#xff0c;有需要的可以自行獲取 點擊前往百度網盤獲取 點擊前往夸克網盤獲取 引言 在使用Spring Boot集成Redis時&#xff0c;序列化方式的選擇直接影響數據存儲的效率和系統兼容性。默認的JDK序列化存在可讀性差、存儲空間大等問題&am…

紫禁城多語言海外投資理財返利源碼帶前端uniapp純工程文件

測試環境&#xff1a;Linux系統CentOS7.6、寶塔、PHP7.2、MySQL5.6&#xff0c;根目錄public&#xff0c;偽靜態thinkphp&#xff0c;開啟ssl證書 語言&#xff1a;中文簡體、英文、越南語、馬來語、日語、巴西語、印尼語、泰語 前端是uniapp的源碼&#xff0c;我已經把nmp給你…

搭建大數據學習的平臺

一、基礎環境準備 1. 硬件配置 物理機&#xff1a;建議 16GB 內存以上&#xff0c;500GB 硬盤&#xff0c;多核 CPU虛擬機&#xff1a;至少 3 臺&#xff08;1 主 2 從&#xff09;&#xff0c;每臺 4GB 內存&#xff0c;50GB 硬盤 2. 操作系統 Ubuntu 20.04 LTS 或 CentOS…

Linux 軟硬連接詳解

目錄 一、軟鏈接&#xff08;Symbolic Link&#xff09; ?定義與特性 ?實現方法?使用 ln -s 命令&#xff1a; 二、硬鏈接&#xff08;Hard Link&#xff09; 1、是什么 2、工作機制 3、實現方式 一、軟鏈接&#xff08;Symbolic Link&#xff09; ?定義與特性 定義…

每日c/c++題 備戰藍橋杯(洛谷P1115 最大子段和)

洛谷P1115 最大子段和 題解 題目描述 最大子段和是一道經典的動態規劃問題。題目要求&#xff1a;給定一個包含n個整數的序列&#xff0c;找出其中和最大的連續子序列&#xff0c;并輸出該最大和。若所有數均為負數&#xff0c;則取最大的那個數。 輸入格式&#xff1a; 第…

前端取經路——框架修行:React與Vue的雙修之路

大家好,我是老十三,一名前端開發工程師。在前端的江湖中,React與Vue如同兩大武林門派,各有千秋。今天,我將帶你進入這兩大框架的奧秘世界,共同探索組件生命周期、狀態管理、性能優化等核心難題的解決之道。無論你是哪派弟子,掌握雙修之術,才能在前端之路上游刃有余。準…

PyTorch API 1 - 概述、數學運算、nn、實用工具、函數、張量

文章目錄 torch張量創建操作索引、切片、連接與變異操作 加速器生成器隨機采樣原地隨機采樣準隨機采樣 序列化并行計算局部禁用梯度計算數學運算常量逐點運算歸約操作比較運算頻譜操作其他操作BLAS 和 LAPACK 運算遍歷操作遍歷操作遍歷操作遍歷操作遍歷操作遍歷操作遍歷操作遍歷…

java命令行打包class為jar并運行

1.創建無包名類: 2.添加依賴jackson 3.引用依賴包 4.命令編譯class文件 生成命令: javac -d out -classpath lib/jackson-core-2.13.3.jar:lib/jackson-annotations-2.13.3.jar:lib/jackson-databind-2.13.3.jar src/UdpServer.java 編譯生成class文件如下 <

ABC 轉 STL 全攻略:格式解析、方法實操與問題解決

在 3D 建模與設計領域&#xff0c;不同格式文件間的轉換是一項基礎且重要的操作。ABC&#xff08;Alembic&#xff09;和 STL&#xff08;Standard Triangle Language&#xff09;是其中常見的兩種格式。ABC 格式因其高效存儲和傳輸 3D 數據的特性&#xff0c;常被用于影視特效…

編寫一個處理txt的loader插件,適用于wbepack

處理txt的webpack的loader插件 編寫一個處理txt的loader插件&#xff0c;適用于wbepack 編寫一個處理txt的loader插件&#xff0c;適用于wbepack 實現一個處理txt的插件&#xff0c;給文本每行前后添加**** module.exports function txtLoader(content) {// 確保 Loader 是異…