數(shù)論4星難題:關(guān)燈引發(fā)的數(shù)論問題

丁丁貓python課程解決初高中數(shù)學(xué)、物理真實(shí)任務(wù)為特色,突出python語言的高效用法。每個課題任務(wù)完整地學(xué)習(xí):

如何換編程的思路重新描述數(shù)學(xué)問題?

如何驗(yàn)證編程邏輯是否嚴(yán)密?

如何對程序做邊界測試

*第3點(diǎn)實(shí)際項(xiàng)目中側(cè)重對求職面試考察重點(diǎn)

覆蓋7個大模塊,每個模塊文末詳細(xì)技能知識點(diǎn)。3個班的進(jìn)度相同但講的深度不同。課程設(shè)計(jì)中將感受到對邏輯課的高度重視,彌補(bǔ)國內(nèi)K12編程和數(shù)學(xué)課程缺少的重要一環(huán)。

**- **編程和機(jī)器人穿插必?cái)?shù)學(xué)和物理

**- **全球頂級的STEM在線課程提供線下輔導(dǎo)

**- ** 既能視頻一對一學(xué)習(xí),也有線下授課

SaltVikki Leigh - 100% Top Hits, Vol. 29

image
今天的任務(wù)是編程解一道數(shù)論問題:學(xué)校長長的走廊一側(cè)n盞間距相同的路燈,路燈的編號是從1,2,直到n。今天數(shù)學(xué)老師的晚自習(xí)就是帶大家討論一個任務(wù):已知n盞路燈都亮著,每個同學(xué)依次邊走邊關(guān)燈,每人關(guān)閉的燈安裝下面規(guī)則進(jìn)行:

現(xiàn)在第一個同學(xué)關(guān)掉第2,4,6,...每次隔1個燈,直至他走到走廊盡頭;

第二個同學(xué)關(guān)掉3,6,9,...每次隔2個燈,直至他走到走廊盡頭;

以此類推,直至第n-1個同學(xué),每隔n-1個燈,直至走到走到盡頭;

問最后還有哪些燈還是亮著的?

直覺是和數(shù)論中的求因數(shù)的規(guī)律有關(guān)

''' 先找規(guī)律

2,4,6,8,10 ...

3,6,9,12,15 ... # 4,8,12,16,20 ... 4號又亮

5,10,15,20,25 ... # 6,12,18,24,30 ... # 7,14,21,28,35 ...

8,6,9,12,15 ... # 9,8,12,16,20 ... 9號又亮了

10,10,15,20,25 ... # 11,12,18,24,30

... 由此推斷出依然亮著燈是:****1、4、9、16****以下所有分析建立在一個基本原理:任意合數(shù)可以表達(dá)為若干質(zhì)數(shù)相乘</article>

一個合數(shù)如 6=23,由2,3兩個質(zhì)數(shù)可以相乘后得到6的所有因子****即對{2,3}做組合,C(1,2) + C(2,2) = ****{2,3,6}****對應(yīng)的場景是,共有*3個同學(xué)會進(jìn)過第6盞燈。

最終第6盞燈會被開關(guān)3次,分別是第2、3和6個同學(xué),所以第6盞燈最后的狀態(tài)是關(guān)閉,因?yàn)榈?個同學(xué)和以后的所有同學(xué)都不會在觸動第6盞燈的開關(guān)了。

繼續(xù)以上推理,一個正整數(shù)n有x個因子,當(dāng)x=2m個即偶數(shù)時(shí),第n個燈經(jīng)過偶數(shù)次的切換必然還是亮燈的狀態(tài),最后該第n-1個同學(xué),他上來就將第n個燈關(guān)閉,共有2m+1次觸碰開關(guān) ;當(dāng)n包含有奇數(shù)個因子時(shí),2m+1+1 = 2(m+1), 共有偶數(shù)次觸碰開關(guān),所以第n個燈還是亮燈的狀態(tài);請?jiān)诖颂幧疃人伎肌?/p>

問題轉(zhuǎn)換為:n分解為多少個因子,并判斷質(zhì)因子的數(shù)量是奇數(shù)還是偶數(shù)?例如:6有兩個因數(shù)2和3,加上6,共有3次觸動開關(guān);7就只有1次,7是素?cái)?shù),沒有因子,共1次;8有因數(shù)是2,4,8,共3次;12 ={2,3,4,6,12}共5次;

以上4種情形燈光最終都停留在關(guān)閉狀態(tài) 對問題的表述繼續(xù)簡化直達(dá)本質(zhì):任意一個整數(shù)n,一定能表達(dá)為若干個素?cái)?shù)相乘,如6=23, 8=222那么,n的因子的數(shù)量就能表達(dá)為所有質(zhì)數(shù)因子集合prime,對prime內(nèi)的元素做組合,就能得到該整數(shù)n的所有因子。所有因子的數(shù)量是奇數(shù),則燈光與初始狀態(tài)相反;如果因子的數(shù)量為偶數(shù),則燈光與初始狀態(tài)相同!****任意找一個合數(shù)n=2357 = 210,那么p = {2,3,5,7}有多數(shù)種組合?**

排列組合中的組合運(yùn)算表達(dá):C = C1 + C2 + C3 + C4 ,p=4對稱性推斷:C1==C3,C4=1, 故此 只需判斷C2的奇偶,此處細(xì)品以下不失一般性推廣到n的素因子數(shù)量為偶數(shù)的情形,p是素因子的數(shù)量關(guān)鍵證明步驟之一:P是偶數(shù)時(shí),判斷C(P/2) 的奇偶性(P * (P-1)(P-2) ... (P/2+1)) / ((P/2) * (P/2-1)* ... ...1)P = 2(P/2)P-2 = 2*(P/2-1).... ...

最后結(jié)果一定能表達(dá)為:2X,無論X的奇偶,2乘以X都是偶數(shù)。關(guān)鍵證明步驟之二:P是奇數(shù)時(shí),判斷C的奇偶性*P是奇數(shù)時(shí),由于C=C1+C2....+CP, 去掉CP==1容易得出:

C1+C2....+CP-1 :p-1偶數(shù),有前面論證過對稱性可得出C一定是偶數(shù)綜上所述:合數(shù)n的質(zhì)數(shù)因子的個數(shù)P,無論P(yáng)是奇數(shù)還是偶數(shù),C都是偶數(shù)!****例-1:8=222,prime={2,2,2}包含的元素做組合共有:****2,42,81,共有3種組合結(jié)果,因此第8個同學(xué)經(jīng)過第8個燈后,燈保持在開的狀態(tài)。****例-2:12 = 223,prime={2,2,3}包含的元素做組合元素后共有:**

2(23),3(22),22(3), 23(2) 共4種組合結(jié)果,再將12本身算入,共有5個因數(shù){2,3,4,6,12}, 是奇數(shù)次開關(guān),所以第12個同學(xué)經(jīng)過第12個燈后,燈是滅的。因?yàn)?是奇數(shù),燈的狀態(tài)一定不同于初始的亮燈狀態(tài)。問題分析到此是否真的解決了呢?沒有!

考慮到質(zhì)因子有重復(fù)出現(xiàn)的情況,還需要繼續(xù)在以上證明結(jié)論的基礎(chǔ)上,解決下面子問題:合數(shù)n有P個質(zhì)因子,其中有重復(fù)出現(xiàn)的因子,如例-1和例-2 2 **合數(shù)的素因子有重復(fù)出現(xiàn)時(shí),組合****結(jié)果****還是偶數(shù)嗎?

****關(guān)鍵證明步驟之三:任意合數(shù)n,如含有重復(fù)出現(xiàn)的質(zhì)數(shù)因子,我們可以表達(dá)為:
prime 是n的所有質(zhì)數(shù)因子的集合且做去除重復(fù)元素的操作: python的set()函數(shù)操作后:n=8時(shí),2
2
3,去重后 prime = {2}
n=36時(shí),prime={2,3}任意合數(shù)n有P個質(zhì)數(shù)因子,進(jìn)過元素去重后操作后:set(p)是全都不同的質(zhì)數(shù)因子的集合。重復(fù)部分的因子組成另一個集合設(shè)為 Q,

顯然 set(Q) <= set(P)前面關(guān)鍵步驟一和二已經(jīng)證明合數(shù)n含有全不相同的質(zhì)數(shù)因子,無論質(zhì)因子的數(shù)量是奇數(shù)還是偶數(shù),組合結(jié)果的數(shù)量都是偶數(shù),又因?yàn)橘|(zhì)數(shù)因子全都不相同,組合乘積的結(jié)果也都不同,這里假設(shè)set(p)集合里的所有元素相乘的結(jié)果為m
m必為偶數(shù)。

那么,我們定義合數(shù)n和它所有質(zhì)因子組合結(jié)果總數(shù)為F(n) , 同時(shí)又由于set(q)包含的都是質(zhì)數(shù),m到n有新增的組合關(guān)系成立:F(n) == m * F(Q)****由此可見,********F(n) == F(m),************理由是偶數(shù)無論乘以奇數(shù)還是偶數(shù)************,****奇偶性不變。****even * odd = even ****even * even = even 但有而且只有一個例外情況:********Q == P 時(shí),******F(P) ==******F(Q) ************************************由此推導(dǎo)可得:************************F(n) == m * m************這意味著,當(dāng)n == mm時(shí),第************m************個同學(xué)還有機(jī)會經(jīng)過第n個路燈。這樣就打破了******F(n)的奇偶性**************當(dāng)p=4時(shí),還有一種情況如:36 = 2323,prime={2,2,3,3}包含的元素做組合元素后共有:****C1=C3=4
C2= 43/21 = 6C4=1
C=C1+C2+C3+C4=11,但由于有重復(fù)的因子導(dǎo)致有重復(fù)的組合結(jié)果,最終組合結(jié)果枚舉:

  1. 2(323),*

  2. 3(223)*

  3. 22(3*3), **

  4. ****23(2*3)****

  5. 33(2*2), **

  6. 223***(3)****

  7. 332(2)*

  8. 232*3 **

共計(jì)8種組合結(jié)果, ****共有8個因數(shù){2,3,4,6,9,12,18,36}, 8是偶數(shù)。偶數(shù)次開關(guān),所以燈是亮的。******綜上所述:** - 首先,n是質(zhì)數(shù)時(shí),燈滅;- 其次,n是合數(shù)而且n不是完全平方數(shù)時(shí),燈滅; n以內(nèi)的數(shù)中,只有滿足是完全平方數(shù)的燈是亮的算法效率講,以上是效率最高的'''*Python *實(shí)現(xiàn)n以內(nèi)的完全平方數(shù) </article>

def on_off_switch(n):
    return [i * i for i in range(1, int(n ** 0.5) + 1)]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 素(質(zhì))數(shù) 1)試除法判斷素?cái)?shù) 2)分解質(zhì)因數(shù) 1)分解 n 的質(zhì)因數(shù) 2)分解 n ! 的質(zhì)因數(shù) 篩質(zhì)數(shù) 篩區(qū)間...
    心安_5fd2閱讀 215評論 0 1
  • 本章涉及知識點(diǎn)1、素?cái)?shù)的定義2、尋找素?cái)?shù)算法—短除法3、尋找素?cái)?shù)算法—篩選法4、互質(zhì)關(guān)系5、歐拉函數(shù)的證明6、歐拉...
    PrivateEye_zzy閱讀 4,727評論 0 6
  • 對一批編號為1~100,全部開關(guān)朝上(開)的燈進(jìn)行以下操作:凡是1的倍數(shù)反方向撥一次開關(guān);2的倍數(shù)反方向又撥一次開...
    博格體閱讀 509評論 0 1
  • 今天又一次被一道數(shù)學(xué)問題震撼到了。很多感想,特別關(guān)于中英基礎(chǔ)教育的差別,甚至是大學(xué)教育怎樣做啟發(fā)式,創(chuàng)新型教育,而...
    GARY_7aef閱讀 600評論 0 0
  • 整除、公約數(shù)、同余與剩余系 從本文開始,我們將正式開始介紹有關(guān)初等數(shù)論的相關(guān)知識與概念,我們爭取用通俗的語言去把握...
    ai_chen2050閱讀 4,185評論 2 3

友情鏈接更多精彩內(nèi)容