鴿巢原理應用於一道十分有意思的題目
在組合數學中學習鴿巢原理。其中一道例題是這樣的:
從1,2,3,4,..., 200這200個整數中選取101個整數,則一定存在兩個數存在整除關係?
解答:
一個數對其按照2進行因式分解,總可寫成n = 2 ^ k * t(其中k >=0, t為奇數)。例如2 = 2 ^ 1 * 1; 3 = 2 ^ 0 * 3...
而1到200存在奇數1,3,5,7,..., 199一共100個奇數。我選取101個整數,則說明存在兩個整數i,j, 它們經過分解,t是相等的。所以前面的k是不一樣的。也就證明了i,j存在整除關係。很簡單是嗎?請看下面一道擴充套件題。
從1,2,3,4,..., 200這200個整數中選取100個整數,其中只有一個數小於16,證明一定存在兩個數存在整除關係?
我們這樣想:
定義兩個集合A = {a[1], a[2], ..., a[100]}
B = {1, 3, 5, 7, ..., 199}
其中A是從200個整數中選取的100個整數,而B[i]則是某個a[j]經過按2分解最後的奇數t。
經過思考,若選取的100個數不存在整除關係,則每個數一定對映到不同的奇數。若兩個數經分解後得到相同的奇數,則這兩個數能夠整除。
我們再來分情況討論,
對於最小數15,
它對映到集合B的元素是15。假設對映到集合B為45的元素為M,則M和15是什麼關係呢?一定整除,對不對?所以存在整除。
對於13, 39
11, 33
9, 27
7, 21
5, 15
3, 9
1不用說,肯定存在整除關係。
關鍵是對於1到15之間的偶數,如何處理?
對於14, 14 = 2 * 7(k = 1)。 對映到B中的元素為7。
我們接著考慮B的為7的倍數的元素{21, 35, 49, 63, 77, 91, 105,..., 189}
我們知道105後面的對映到A就是它們本身,因為A中每個數都小於200.
接著我們隨便來考慮一組數值<35, 105>.105是35的倍數,為了使它們兩者對應到A中的元素不存在整除,則A中的元素一定是2 ^ k * 35(k > 0)。而這是A中的元素一定是14
的整倍數。所以要麼是14的倍數,要麼是105和35對應的數存在整數倍關係。
對於10,10 = 2 * 5(k = 1)處理方式和14一樣。
對於6,處理方式和14一樣。
接著我們來考慮12,8,4,2.
先來考慮2吧。
若A中存在元素2,若不存在整數關係,其它199個數都是奇數。我們知道,這些奇數中肯定存在整除關係。
再來考慮12吧。
對於12,12 = 2 ^ 2 * 3(k = 2, t = 3)
奇數為3.我們來考慮B中的 sub_B={9, 15, 21, 27, ...99, 105, 111, 117, ..., 195}
這些都是3的倍數。
為了不和12產生整除關係設定sub_B 到A中元素的對映關係為 2 ^ k * sub_B[i](其中一定是小於等於1的)
我們知道105以後的k一定是0.我們來看tri_pair<9, 27, 117>117是27的倍數,27是9的倍數。為了是它們對映到A中元素不能整除,所以2 ^ 1 * 27, 2 ^ 2 ^ 9。
這個時候我們發現,2 ^ 2 * 9 已經是12的倍數了。要麼9, 27, 117對應於A中的數之間存在整除關係,要麼其中有些數是12的倍數,總之,存在整除關係。
來考慮8和4。
對於4 = 2 ^ 2 * 1(k = 2, t = 1)
正如在對於12討論的那樣,一定存在4的倍數。
對於8 = 2 ^ 3 * 1(t = 1)對於3次方如何考慮呢?
還是按照原來的思路。
我們取sub_B = {3, 9, 15, 21, ..., }
這樣對於<3, 21, 63, 189>後面的在這裡就不寫了。
到現在,我們已經將1,2,3,4,5,..., 15全部討論完了。對於每個數都存在整除關係。
相關推薦
鴿巢原理應用於一道十分有意思的題目
在組合數學中學習鴿巢原理。其中一道例題是這樣的: 從1,2,3,4,..., 200這200個整數中選取101個整數,則一定存在兩個數存在整除關係? 解答: 一個數對其按照2進行因式分解,總可寫成n = 2 ^ k * t(其中k >=0, t為奇數)。例如2 = 2
acm組合數學及其應用--容斥原理與鴿巢原理(一)
acm組合數學及其應用–容斥原理與鴿巢原理 追逐青春的夢想,懷著自信的心,永不放棄 1、容斥原理 定理一(德摩根定理) 若A和B是全集U的子集, 1、則A和B並集的補集等於A的補集與B的補集的交集 2、則A和B交集的補集等於A的補集
萌新筆記之鴿巢原理及其應用
前言:本萌新這裡的筆記基本摘自於書+一些自己的淺層理解,如有錯誤請吐槽!歡迎指正! 鴿巢原理 定理: 如果n+1個物體,被放入n個盒子,那麼至少有一個盒子包含兩個或多個物體。(這一點無需證明也能理解吧
一個簡單的鴿巢原理的應用
鴿巢原理:如果k+1個或者更多的物體放入k個盒子,那麼至少有一個盒子包含了2個或者更多的物體。 證明:對每個整數n,存在一個數是n的倍數,且它的十進位制表示中只出現0和1. 證:首先要知道當一個數被n正處時存在n個可能的餘數,那麼現在考慮有n+1個整數,1,11,111,1
POJ 3370 Halloween treats 鴿巢原理 解題
for -1 pri style swe ont tro pan ets Halloween treats 和POJ2356差點兒相同。 事實上這種數列能夠有非常多,也能夠有不連續的,只是利用鴿巢原理就是方便找到了連續的數列。並且有這種數列也必然能夠找到。 #incl
HDU 1205 鴿巢原理
int 技術 its pan lose 技術分享 else bit col #include <bits/stdc++.h> using namespace std; long long abs_(long long a,long
騷操作之鴿巢原理
參加 style 組合數 text int 一段 組合 10個 有時 桌上有十個蘋果,要把這十個蘋果放到九個抽屜裏,無論怎樣放,我們會發現至少會有一個抽屜裏面至少放兩個蘋果。這一現象就是我們所說的“抽屜原理”。 抽屜原理的一般含義為:“如果每個抽屜代表一個集合,每一個蘋果就
poj Find a multiple【鴿巢原理】
一個 while tps int www. span space ML .html 參考:https://www.cnblogs.com/ACShiryu/archive/2011/08/09/poj2356.html 鴿巢原理??? 其實不用map但是習慣了就打的map
[POJ2356] Find a multiple 鴿巢原理
first can pro iat tro tdi num name som Find a multiple Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8776
[BZOJ4722] 由乃[鴿巢原理+bitset+倍增]
能夠 ++ got while getchar() ace lowbit its set 題意 給定長為 \(n\) 序列 \(a\) ,要求支持兩種操作: \(1.\) 詢問在一個區間 \([l,r]\) 中,是否能夠選出兩個交集為空的集合 $ \rm X?,Y$, 使得
Find a multiple POJ - 2356 鴿巢原理
鴿巢原理見《組合數學》第43頁應用3 如下圖: 原題連結:點選開啟連結 Find a multiple Time Limit: 1000MS Memory Limit:&nb
POJ 3370 鴿巢原理
這個題要知道一個定理。 給定m個數,a1,a2,a3,.....am,至少存在整數k,l,(1<=k<l<=m)使得ak+....+al是m的倍數。 構造字首和: s1=a1; s2=a1+a2; s3=a1+a2+a3; ... sm=a1+
鴿巢原理及其擴充套件——Ramsey定理
第一部分:鴿巢原理 咕咕咕!!! 然鵝大家還是最熟悉我→ a陣列:but 我也很重要 $:我好像也出現不少次 以上純屬灌水 文章簡敘:鴿巢原理對初賽時的問題求解以及複賽的數論題目都有啟發意義。直接的初賽考察一般在提高組出現。相當於抽屜。 別名:鴿籠原理
poj 3714 Raid (分治+一點鴿巢原理)
題目連結:poj 3714 題意:給個n,首先個n個點的位置,再給n個人的位置,問你,人到點最短距離是多少? 參考部落格:http://yzmduncan.iteye.com/blog/1432880 https://www.cnblogs.com/captain1/p/960755
詳解鴿巢原理【組合數學】
鴿巢原理的簡單形式: 如果要把n+1個物體,放進n個盒子,那麼至少有一個盒子包含兩個或更多的物體。 證明:用反證法。如果這n個盒子中的每一個都至多含有一個物體,那麼物體的最多數量是n。這與我們有n+1個物體的實際情況相矛盾,故不成立。 當然,對於鴿巢原理的
淺談容斥原理鴿巢原理(抽屜原理
容斥原理 演算法簡述 在集合S中至少具有,,…中的一個元素的個數是: 主要運用場合與思路: 簡單的講:容斥原理的最重要的應用就是去重。如果完成一件事情有n類方式,…,每一類進行方式有中方法(1 <= i <=n),但是這些
組合數學之四 —— 鴿巢原理
嘿,大家統統圍過來,給你們看一個很棒的東西,那是一種很酷很辣很炫很Top的東西: 基本知識 如果要把n+1個物品放進n個盒子中,那麼至少有一個盒子包含兩個或更多東西 這個就是鴿巢原理,本文完 原理很簡單,我們提出兩個推論: 如果將n個物體
[YT2sOJ1404]多重集[鴿巢原理]
class swa emp 交換 存在 ret 前綴 out soj 首先進行一個處理:若a的元素和大於b的元素和,則交換序列 a 和 b 令 A 表示序列a的前綴和數組 B表示序列b的前綴和數組 對於A中的每個元素 \(A_i\) ,B中一定存在 \(B_j\) 滿足 \
Trie原理以及應用於搜尋提示
背景 有一段如下內容: 舉個例子來說吧,搜尋提示功能大家都知道吧,就是下面這個圖的東西。 如果是google,baidu這種大型搜尋系統,或者京東淘寶這種電商系統,搜尋提示的呼叫量是搜尋服務本身呼叫量的幾倍,因為你每輸入一個鍵盤,就要呼叫一次搜尋提
嶺回歸技術原理應用
方程 及其 時長 原理 cnblogs 自己 文獻 其中 clas 嶺回歸技術原理應用 作者:馬文敏 嶺回歸分析及其SPSS實現方法 嶺回歸分析(RidgeRegression)是一種改良的最小二乘估計方法,它是用於解決在線性回歸分析中自變量