題目描述
將乙個圓形等分成n個小扇形,將這些扇形標記為1,2,3,…,n。現在使用m種顏色對每個扇形進行塗色,每個扇形塗一種顏色,且相鄰的扇形顏色不同。
求:有多少種塗色方法。
分析設a(n)為符合要求的第n個扇形的塗色方法。
對扇形1有m種塗色方法,扇形2有m-1種塗色方法,扇形3也有m-1種塗色方法,扇形n也有m-1種塗色方法。於是,共有m×(m−1)^(n−1)種不同的塗色方法,但是這種塗色方法可能出現1與n著色相同的情形,這是不符合題意的,因此,答案應從m×(m−1)^(n−1)中減去這些不符合題意的塗色方法。不符合題意的塗色方法怎麼計算?把1與n**,其塗色方法相當於用m種顏色對n-1個扇形塗色,為a(n-1),於是:a(n)=m*(m-1)^(n-1)-a(n-1), n>=3。其中a(3)=m*(m-1)*m(-2)。
其實到這裡就可以直接用遞迴程式設計求解了。當然也可以繼續推下去:
扇形塗色問題
問題定義 乙個圓劃分為n個扇形,現用m種顏色對其上色,要求相鄰兩塊扇形的顏色不能相同,問有多少種上色方案?其中n 1,m 3 注意 不考慮對稱性,例如 乙個圓劃分為2個扇形,用3種顏色上色方案有 黑紅,黑白,白紅,白黑,紅白,紅黑 6種,相當於每個扇形都有編號,是不一樣的。解題思路 採用數學歸納的思...
扇形塗色問題 Python
問題描述 求 有多少種塗色方法。備註 n 1,m 3 分析 n a n 為符合要求的n n個扇形的塗色方法總和。對扇形1有m種塗色方法,扇形2有m 1 m 1種塗色方法,扇形3也有m 1 m 1種塗色方法,扇形n也有m 1 m 1種塗色方法。於是,共有m m 1 n 1 m m 1 n 1 種不同的...
阿里實習測評 扇形塗色問題
問題定義 乙個圓劃分為n個扇形,現用m種顏色對其上色,要求相鄰兩塊扇形的顏色不能相同,問有多少種上色方案?其中n 1,m 3 注意 不考慮對稱性,例如 乙個圓劃分為2個扇形,用3種顏色上色方案有 黑紅,黑白,白紅,白黑,紅白,紅黑 6種,相當於每個扇形都有編號,是不一樣的。解題思路 採用數學歸納的思...