1. 程式人生 > >鴿巢原理應用於一道十分有意思的題目

鴿巢原理應用於一道十分有意思的題目

在組合數學中學習鴿巢原理。其中一道例題是這樣的:

從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)是一種改良的最小二乘估計方法,它是用於解決在線性回歸分析中自變量