塗色問題(Python)

來源:互聯網
上載者:User

標籤:detail   一個   pre   alc   class   ref   blog   sdn   uri   

題目:將一個圓形等分成N個小扇形,將這些扇形標記為1,2,3,…,N。現在使用M種顏色對每個扇形進行塗色,每個扇形塗一種顏色,且相鄰的扇形顏色不同,問有多少種不同的塗法?(N≥1,M≥3)

參考:79529355

遞迴解決:

當n=1是,f(1,m) = m
當n=2是,f(1,m) = m(m-1)
當n=3是,f(1,m) = m(m-1)(m-2)
當n=4時,f(4,m) = m(m-1)(m-2)(m-2) + m(m-1)(m-1) = m(m-1)(m^2-3m+3)
當n=5時,f(5,m) = m(m-1)(m-2)(m-2) + m(m-1)(m-1)(m-1)= m(m-1)(m^2-3m+3)(m-1)= f(4,m)(m-1)
可推出關係 f(n,m) = f(n-1,m)(m-1)

def calculate(n,m):    """    :param n: n個扇形    :param m: m種顏色    :return: 塗法的種類    """    if n == 1:        return m    if n == 2:        return m * (m-1)    if n == 3:        return m * (m-1) * (m-2)    if n == 4:        return m * (m-1) * (m-2) * (m-2) + m * (m-1) * (m-1)    return calculate(n-1,m) * (m-1)print(calculate(4,4))

塗色問題(Python)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.