3372 Candy Distribution

來源:互聯網
上載者:User

知道要證明什麼情況下(x)=(x*(x-1))/2 mod N為N的完全剩餘系(從0開始標號),但是YY了一節課都沒有太好的思路,回來看了大牛的證明,自己又研究了一會,終於懂了

 

首先,我們可以發現,f(x)的周期為N或者2*N,但當周期是2*N時,前N個數和後N個數是對稱的,可以參考

http://hi.baidu.com/findthegateopen/blog/item/03e5802e19f1ea301e3089f9.html

 

於是,為了證明什麼情況下f(x)%N為N的完全剩餘系,我們可以假設0<=i<j<N,且f(i)==f(j),即假設f(x)%N不是N的完全剩餘系

可得i*(i-1)/2=j*(j-1)/2 mod N,整理下可得(j-i)*(i+j-1)/2=0 mod N

 

可以發現,j-i與i+j-1的奇偶性相反

討論:如果j-i為偶數

(1)如果(j-i)/2為偶數,由於此時i+j-1為奇數,則N=S*2^k(S為正奇數,k>0)

S為i+j-1的因子,2^k為(j-i)/2的因子,但是當S=1時,N=2^k,且必為(j-i)/2的因子,因為它不可能是i+j-1(奇數)的因子,那麼j-i=2*N或j-i=0,由於0<=i<j<N,顯然不可能,則S其實應該為大於1的奇數

 

(2)如果(j-i)/2為奇數,由於此時i+j-1也為奇數,則N=P*Q(P,Q為正奇數),可以認為P為(j-i)/2的因子,Q為i+j-1的因子

 

綜述,當N=S*2^k(S>1且S為奇數,k>0),或者N=P*Q(P,Q為正奇數)時,f(x)%N不能構成N的完全剩餘系

 

以上兩種情況包含了出N=2^k(k>0)以為的所有情況,所以只有當N=2^k(k>0)時,f(x)%N為N的完全剩餘系

 

總結:

一開始就明確了證明的目標,但是卻沒想到通過反證法去和定義找矛盾來證明,自己的思維能力還是很差

回顧整個證明過程,其中有很多巧妙的地方,如果沒有一定積累,很難會想到,例如N的表示方法和j-i與i+j-1的奇偶性相反

其實所有偶數可以表示為N=S*2^k(S為奇數,k>0)的形式,所有奇數可以表示為N=P*Q(P,Q為奇數)的方式

 

另外,二進位下判斷一個數是否為2的方冪,可以用X&(X-1)來判斷,如果結果為0,說明是,否則,說明不是

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.