數列問題真的很頭疼,需要不少數學基礎和概念,有些複雜不好記的早丟了,只能總結些定義一看即懂的數列了
常見概念:
質數/素數
合數約數
質因數階乘
排列公式
組合公式
二分求冪
卡特蘭數
唯一因式分解定理
約數個數定理
中國餘數定理(不太明白)
斐波那契數列
費馬小定理
哥德**猜想
等差數列
等比數列
常見: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來實現乙個數學規劃,求函式最小值。這期部落格主要會講以下內容 簡單說 數學規劃就是給定一些條件,求出使得目標函式最小 或最大 的引數。對於計算機不發達的年代,這種工作都是人做的,因而有好多好多不同的數學大佬,發明了許多不同的找最小...