在日常生活中,我們在收集資料之後,習慣用比例描述兩數之間的比例關係,但是如果資料量過大,如566487:3842145,我們很難看出兩者之間的實際關係,但是如果把資料範圍壓縮,變成3:20,,雖然數值上造成了一定損失,但是依舊能看出兩者之間的關係,並更容易理解。
所以有以下的演算法問題:對於任意的輸入n:m,在最大範圍不超過l下,我們要算出在l的範圍內,最接近原始比值的數n':m'。其中n'和m'為最簡比例,且互質。
n m l
輸入有若干行,1<=n,m<=2147483647;1<=l<=n,m;1<=l<=50000。
n' m'
對於任意的輸入n,m,均要算出對應的n',m',按行顯示,其中n':m'>=n:m;
566487 3842145 20
1415926 8584074 100
3 20
16 97
我的**如下,利用了區域優化的思想,即先把輸入的比例壓縮為在l下的最大比例。因為任意乙個比這個設定的數更大的,會讓結果離真實結果更遠
另外,利用狀態的判斷,演算法可以更清晰地知道,下一步應該給左邊的數自減,還是給右邊的數自減,可以把時間複雜度從o(n^2)壓縮到o(l+min(n,m)/max(n,m)*l)
#include#includeusing namespace std;
int main()
if(n/m>=result)n--;else m--;
}cout《該演算法的**精簡,當l設定為10000000時,依舊可以秒出結果
有比例壓縮
製作縮圖 影象壓縮 src image imagecreatefrompng bs.png 引數3 4 目的地 畫布的起點座標 dst x 0 dst y 0 引數5 6 原圖的 起點座標 src x 0 src y 0 引數9 10 原圖的寬度 高度 通過imagesx 函式獲得影象資源的寬度 i...
小公升初總複習數學 用比例求解
基礎回顧 比例的意義 表示兩個比相等的式子。如 a b c d 或 a b c d 比例的基本性質 在比例裡,兩個外項的積等於兩個內項的積。如 a b c d ad bc 或 a b c d ad bc 反比例的意義 兩個相關聯的量,乙個量x變大 或減小 另乙個量y就跟著減小 或變大 而兩個量的乘積...
QGraphicsview的比例復原
我們都知道qgraphicsview的縮放是使用scale函式來設定的,但是每次設定scale都會在之前的基礎上進行縮放,有時間會需要復原原來的縮放比例,就牽扯到qgraphicsview的復原,查詢資料,在網上找到乙個解決方案,貼在下面,望大家可以學習。先了解qmatrix,qmatrix包含有6...