算法入門----小話算法(1)


下面就首先從一些數學問題入手。

Q1:?如何證明時間復雜度O(logN) < O(N) < O(NlogN) < O(N2) <?O(2N) < O(N!) < O(NN)?

A:?如果一個以整數為參數的不等式不能很容易看出不等的關系,那么最好用圖示或者數學歸納法。

很顯然,使用圖示的方法也不能很好得到上面的關系圖,因為圖示范圍較小,不能證明當N趨于無窮大依然成立。所以,數學歸納法成為首選。

不失一般性,假設logN的底數為2:

欲證明O(logN) < O(N),只需要證明log2N < N = log22N, 只需要證明N <?2N ?

當N = 1時成立,假設上面成立,現在只要證明N + 1 < ?2N+1 ? ??

這個顯然成立。

O(N) < O(NlogN)?很容易證明,這里不再證明;

O(logN) < O(N),?很容易證明 O(NlogN) < O(N2)

對于O(N2) <?O(2N) < O(N!) < O(NN),由上面的方法同樣很容易證明,這里不再贅述。

Q2:如何證明1+2+.....+n = n(n+1)/2?? ?

A: 對于以整數n為變量的表達式的證明方式當然是數學歸納法。

當n=1時,很顯然成立;假設等于n的時候也成立,下面就要證明當等于n+1的時候依然成立。

1+2+...+n+(n+1) = n(n+1)/2+(n+1)=(n+1)(n+2)/2.顯然成立。所以證明此等式成立。

當然,證明這個還可以用高斯的NB計算方法:

假設S=1+2+...+(n-1)+n

同樣S=n+(n-1)+...+2+1

所以兩式相加: 2S=(n+1)+(n+1)+...+(n+1)+(n+1)=n(n+1);

所以S=n(n+1)/2.

當然,還有另外一種畫圖的方式來證明:

?如上圖,在一個邊長為n的正方形里面,存放了1,2,...n這些小圓圈。

可以看出,(1+2+...+n)*2=n*n+n;

所以1+2+...+n=n(n+1)/2.


微風不燥,陽光正好,你就像風一樣經過這里,愿你停留的片刻溫暖舒心。

我是程序員小迷(致力于C、C++、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等編程技術的技巧經驗分享),若作品對您有幫助,請關注、分享、點贊、收藏、在看、喜歡,您的支持是我們為您提供幫助的最大動力。

歡迎關注。助您在編程路上越走越好!

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

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

相關文章

Python3 筆記:sort() 和 sorted() 的區別

1、sort() 可以對列表中的元素進行排序&#xff0c;會改變原列表&#xff0c;之前的順序不復存在。 list.sort&#xff08;key&#xff0c; reverse None&#xff09; key&#xff1a;默認值是None&#xff0c;可指定項目進行排序&#xff0c;此參數可省略。 reverse&#…

rmxprt轉換的3D模型只有一半?---模大獅模型網

在3D建模和渲染的工作流程中&#xff0c;我們經常需要用到各種轉換工具來兼容不同平臺或軟件之間的模型格式。rmxprt(或其他類似的模型轉換工具)就是其中的一種&#xff0c;它能夠將模型從一種格式轉換為另一種格式。然而&#xff0c;有時在轉換過程中可能會遇到一些問題&#…

微服務雪崩問題、Sentinel(請求限流、線程隔離、服務熔斷)、Seata分布式事務

文章目錄 前言一、微服務保護二、Sentinel2.1 微服務整合2.2 簇點鏈路2.3 請求限流2.4 線程隔離2.5 服務熔斷 三、分布式事務3.1 Seata3.1.1 Seata架構3.1.2 部署TC服務3.1.3 微服務集成Seata 3.2 XA模式3.3 AT模式 前言 微服務之間為什么會雪崩&#xff1f;怎么解決雪崩問題&…

MySQL存儲過程淺析

存儲過程 定義&#xff1a; 存儲過程是一組為了完成特定功能的SQL語句&#xff0c;是由一些SQL語句組成的代碼塊&#xff0c;這些代碼塊像方法一樣實現一些功能&#xff08;對單表或多表的增刪改查&#xff09;&#xff0c;然后給代碼塊起一個名字&#xff0c;用到的時候再調用…

Oracle體系結構初探:數據庫啟動與停止

往期內容 參數管理 控制文件添加 啟動 在啟動Oracle數據庫時&#xff0c;我們一般會使用如下命令&#xff1a; startup 雖然命令只有一個&#xff0c;但其中卻是經歷了3個階段&#xff0c;從下面執行 startup 命令返回也可以看出來。 總結為3個階段&#xff1a; nomount&…

ubuntu下python導入.so庫

ubuntu下python導入.so庫 文章目錄 ubuntu下python導入.so庫1. 什么是.so文件&#xff1f;2. 使用python腳本編譯.so庫文件Reference 最近遇到了python導入c編譯的 .so庫的問題&#xff0c;發覺挺有意思&#xff0c;于是寫下這篇blog以作記錄。 1. 什么是.so文件&#xff1f; …

【簡單介紹下深度神經網絡】

&#x1f3a5;博主&#xff1a;程序員不想YY啊 &#x1f4ab;CSDN優質創作者&#xff0c;CSDN實力新星&#xff0c;CSDN博客專家 &#x1f917;點贊&#x1f388;收藏?再看&#x1f4ab;養成習慣 ?希望本文對您有所裨益&#xff0c;如有不足之處&#xff0c;歡迎在評論區提出…

句柄降權繞過CallBacks檢查

看到前輩們相關的文章&#xff0c;不太明白什么是句柄降權&#xff0c;于是專門去學習一下&#xff0c;過程有一點波折。 句柄降權 什么是句柄 當一個進程利用名稱來創建或打開一個對象時&#xff0c;將獲得一個句柄&#xff0c;該句柄指向所創建或打開的對象。以后&#xf…

什么是DNS緩存投毒攻擊,有什么防護措施

隨著企業組織數字化步伐的加快&#xff0c;域名系統&#xff08;DNS&#xff09;作為互聯網基礎設施的關鍵組成部分&#xff0c;其安全性愈發受到重視。然而&#xff0c;近年來頻繁發生的針對DNS的攻擊事件&#xff0c;已經成為企業組織數字化發展中的一個嚴重問題。而在目前各…

go string 實現

在go中string是不可變的&#xff0c;這意味著對string發生改變的操作實際上都是通過分配新的string去實現的 在string內存分配上&#xff0c;對于小對象分配到棧&#xff0c;大對象分配到堆中 string在go中的結構其實很簡單&#xff0c;就是一個指向實際數據的指針以及字符串…

用于與 HTTP 服務器通信的函數

用于與 HTTP 服務器通信的函數 Plant Simulation 提供了許多使用 HTTP 協議與 HTTP 服務器通信的函數。可使用這些函數來發送 HTTP 請求、發送數據和從 HTTP 響應中接收數據&#xff0c;以及在 HTTP 服務器上創建和刪除資源&#xff1a; httpGetRequest 發送 GET 請求。請求…

在 Visual Studio 2022 (VS2022) 中刪除 Git 分支的步驟如下

git branch -r PS \MauiApp1> git push origin --delete “20240523備份” git push origin --delete “20240523備份”

PCL 常用小知識

文章目錄 一、時間計算二、實現類似`pcl::PointCloud::Ptr`和`pcl::PointCloud`的兩個類相互轉換三、查找點云的x,y,z的極值四、知道需要保存點的索引,從原點云中拷貝點到新點云五、從點云里刪除和添加點六、對點云進行全局或局部變換七、鏈接兩個點云字段(兩點云大小必須相…

若依 ruoyi-vue 用戶賬號前后端參數校驗密碼 手機號 郵箱

前端 <el-dialog :title"title" :visible.sync"open" width"800px" append-to-body><el-form ref"form" :model"form" :rules"rules" label-width"120px"><el-row><el-col :span…

Vue3骨架屏(Skeleton)

效果如下圖&#xff1a;在線預覽 APIs 參數說明類型默認值必傳animated是否展示動畫效果booleantruefalsebutton是否使用按鈕占位圖boolean | SkeletonButtonPropsfalsefalseavatar是否顯示頭像占位圖boolean | SkeletonAvatarPropsfalsefalseinput是否使用輸入框占位圖boolea…

SOLIDWORKS二次開發服務商 慧德敏學

SOLIDWORKS是一套三維設計軟件, 采用特征建模、變量化驅動可方便地實現三維建模、裝配和生成工程圖。SOLIDWORKS軟件本身所具有的交互方式, 可以使用戶對已生成模型的尺寸、幾何輪廓和相互約束關系隨時進行修改, 而不需要編程。但要實現設計意義上的變量化繪圖和系列化設計, 需…

java-查詢字符串當中是否包含中文

文章目錄 前言java-查詢字符串當中是否包含中文 前言 如果您覺得有用的話&#xff0c;記得給博主點個贊&#xff0c;評論&#xff0c;收藏一鍵三連啊&#xff0c;寫作不易啊^ _ ^。 ??而且聽說點贊的人每天的運氣都不會太差&#xff0c;實在白嫖的話&#xff0c;那歡迎常來啊…

軟考系統架構師一些知識點記錄-1

個人隨筆 (Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 引言 準備去參加軟考的考試&#xff0c;但對一些概念掌握的還不夠&#xff0c;借此機會&#xff0c;整理記錄一二&#xff0c;便于自己理解掌握。 知識范圍 感覺不夠清晰的部分主要是第三篇和第四篇的部分。…

國際頂會認可!KaiwuDB 論文入選 ICDE 2024

導 讀 近日&#xff0c;KaiwuDB 與中國人民大學合作的論文 FOSS: A Self-Learned Doctor for Query Optimizer 被數據庫領域頂會The 40th IEEE International Conference on Data Engineering (ICDE 2024) 錄用啦! 論文中提出了具備自學習、自診斷能力的查詢優化器 FOSS&…

USB官方文檔怎么下載

直接登錄USB官網"https://usb.org/" 如&#xff0c;我需要查找與USB device class相關的文檔 點擊搜索后就能找到。 學習還是要以官方文檔為主&#xff0c;博客上的介紹不可信&#xff0c;USB協議規范很重要!