數學中的演算法 數,數列

2021-06-22 08:55:23 字數 986 閱讀 3640

數列問題真的很頭疼,需要不少數學基礎和概念,有些複雜不好記的早丟了,只能總結些定義一看即懂的數列了

常見概念:

質數/素數

合數約數

質因數階乘

排列公式

組合公式

二分求冪

卡特蘭數

唯一因式分解定理

約數個數定理

中國餘數定理(不太明白)

斐波那契數列

費馬小定理

哥德**猜想

等差數列

等比數列

常見:swap

奇偶判斷(與2的關係或用位與1的關係)

公約數,公倍數

最大公約數(歐幾里德演算法)

不要被階乘嚇倒(.求n!末尾有多少個0;求n!二進位制最低位1的位置)

陣列中出現次數超過一半的數字

1-n整數中1出現的次數(對n上每一位進行判斷,分別是高位,該位,低位三種情況累加)

尋找最大的k個數

精確表達浮點數

程式設計之美2.8

尋找陣列中的最大值和最小值

尋找陣列中的次大值的最優演算法(n+lgn,利用敗者樹減少比較次數)

快速尋找滿足條件的兩個數

子陣列的最大乘積

連續子陣列的最大和

陣列的迴圈移位

乙個陣列分割為兩個和最接近的

數值的整數次方(二分求冪加速)

fibonacci斐波那契數列(用矩陣乘法+二分求冪加速)

列印1到最大的n位數(全排列)

各種大數加減乘除,階乘,模

求第k個醜數

n個骰子的點數(點數之和s所有可能值的概率,遞迴會有重複計算,用遞推迴圈自底向上)

撲克牌的順子

約瑟夫環問題(鍊錶模擬可以解決但效能不好,用遞推公式迴圈,自底向上)

不用加減乘除做加法

中國剩餘定理

中位數或第k大的數的select演算法(基於partition)

100盞燈問題:參考:

二分法解方程

演算法 數學 矩陣

include include using namespace std const int row 1010 const int col 1010 class matrix matrix matrix int row,int col n row m col 預設n,m 小於row,col void ...

快速冪演算法(數學)

快速冪演算法能幫我們算出指數非常大的冪,傳統的求冪演算法之所以時間複雜度非常高 為o 指數n 就是因為當指數n非常大的時候,需要執行的迴圈操作次數也非常大。所以我們快速冪演算法的核心思想就是每一步都把指數分成兩半,而相應的底數做平方運算。這樣不僅能把非常大的指數給不斷變小,所需要執行的迴圈次數也變小...

Nelder Mead演算法 數學規劃

最近做的 裡面涉及到了數學規劃,因此小小研究了一下,怎麼用python來實現乙個數學規劃,求函式最小值。這期部落格主要會講以下內容 簡單說 數學規劃就是給定一些條件,求出使得目標函式最小 或最大 的引數。對於計算機不發達的年代,這種工作都是人做的,因而有好多好多不同的數學大佬,發明了許多不同的找最小...