成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

對(duì)臺(tái)階步數(shù)問題的數(shù)學(xué)分析及更優(yōu)解探索

開發(fā) 后端
對(duì)臺(tái)階步數(shù)問題提出簡(jiǎn)單分析,探索是否存在更優(yōu)解的方案。

問題

有這樣一個(gè)關(guān)于臺(tái)階和步數(shù)的題目:

假設(shè)A上臺(tái)階,一次可以跨1層,2層,3層.. 或m層,問A上n層臺(tái)階,有多少種走法?其中,m和n都是正整數(shù),并且 m <= n

對(duì)臺(tái)階步數(shù)問題提出簡(jiǎn)單分析,探索是否存在更優(yōu)解的方案。

 

分析

這個(gè)問題等價(jià)于:

對(duì)于數(shù)n,有多少種方案讓小于n的數(shù)相加等于n,且這些數(shù)中的***數(shù)不超過m(m<=n) 

首先考慮m=n時(shí)情況

有多少種方案把n拆分成1...n份:

當(dāng)n=2時(shí),分1種{2},分2種{1*2}

當(dāng)n=3時(shí),分1種{3},分2種[1,2]的排列,分3種{1*3}

當(dāng)n=4時(shí),分1種{4},分2種[1,3][2,2]的排列,分3種[1,1,2]的排列,分4種{1*4}

當(dāng)n=5時(shí),分1種{5},分2種[1,4][2,3]的排列,分3種[1,1,3][1,2,2]的排列,分4種[1,1,1,2]的排列,分5種{1*5}

當(dāng)n=6時(shí),分1種{6},分2種[1,5][2,4][3,3]的排列,分3種[1,1,4][1,2,3][2,2,2]的排列,分4種[1,1,1,3][1,1,2,2]的排列,分5種[1,1,1,1,2]的排列,分6種1*6

……

于是每一步分法都是一個(gè)將整數(shù)n的進(jìn)行有序k分拆問題。

根據(jù)組合數(shù)學(xué)定理:正整數(shù)n的有序k分拆的個(gè)數(shù)等于。即(n-1)選(k-1)的組合數(shù)。

這正是楊輝三角的第n行第k項(xiàng)的通項(xiàng)

于是,可以得到:

那么 k→1...n 總方案數(shù)(即為n從1拆分到n拆分的和的函數(shù),用S(n)記號(hào)表示)

   (根據(jù)楊輝三角性質(zhì))


 

考慮1<m<n的情況:

(非常抱歉因疏于嚴(yán)謹(jǐn)上一版中該部分推測(cè)有誤,經(jīng)查證后給出準(zhǔn)確方法。特別感謝 @張晉坤 @顧健 等同學(xué)的斧正。)

當(dāng)m<n時(shí),該問題可以描述為,設(shè)k施一個(gè)給定的正整數(shù),設(shè)hk(n)表示將正整數(shù)n拆分分部量只含1,2,3...k的有序分拆數(shù)。該問題符合廣義斐波那契數(shù)定義,則hk(n)滿足:

當(dāng)n<=k時(shí),hk(n)=2n-1

當(dāng)n>k>=2時(shí),hk(n)=hk(n-1)+hk(n-2)+...+hk(n-k)

因?yàn)閚<=k時(shí),正整數(shù)n拆成分部量只含1,2..k的有序分拆數(shù),就是n的有序分拆數(shù),而n得有序分拆數(shù)就是2n-1。

所以,根據(jù)定理寫出了此迭代的循環(huán)版本,如下面的wideFib方法。 

總結(jié)

以上總結(jié),可以用一分段函數(shù)來描述這個(gè)問題的通解: 

當(dāng)m=n時(shí)復(fù)雜度為O(1)

當(dāng)m<n時(shí)復(fù)雜度為O(nm+n),雖然未能達(dá)到線性復(fù)雜度,但也能看出具有更小的常數(shù)階。

所以有一定程度的優(yōu)化改善。

 

示例

利用上面的結(jié)論,給出如下代碼:

  1. //java  
  2.     
  3.     static long stepsOfTerrace(int n, int m) {  
  4.         if (m > n || n < 2)  
  5.             throw new IllegalArgumentException();  
  6.         if (m == n)  
  7.             return (long) Math.pow(2, n - 1);  
  8.         else if (m > 1)  
  9.             return wideFib(n , m);  
  10.         else 
  11.             return n;  
  12.     }  
  13.  
  14.     static long wideFib(int n, int k) {  
  15.         long[] steps = new long[n];  
  16.         for (int i = 1; i <= n - 1; i++) {  
  17.             if (i <= k)    // hk(k)之前序列=2^n-1  
  18.                 steps[i] = (int) Math.pow(2, i - 1);  
  19.             else    // 之后按照廣義斐波那契計(jì)算  
  20.                 for (int j = i - 1; j >= i - k; j--)  
  21.                     steps[i] += steps[j];  
  22.         }  
  23.         long sum = 0;  
  24.         for (int i = n - k; i <= n - 1; i++)  
  25.             sum += steps[i];  
  26.         return sum;  
  27.     }   

原文鏈接:http://my.oschina.net/spance/blog/229477

責(zé)任編輯:林師授 來源: oschina博客
相關(guān)推薦

2023-11-30 15:36:36

SympyPython

2014-08-05 09:15:55

程序員

2014-08-08 10:24:37

程序員

2016-10-12 10:18:53

Java字符串源碼分析

2024-04-08 07:17:21

Date日期處理類型

2012-12-10 09:58:27

完美軟件軟件開發(fā)軟件經(jīng)濟(jì)學(xué)

2018-06-13 09:39:59

數(shù)據(jù)分析服務(wù)器

2010-08-12 09:12:24

Google、魔方“神

2024-10-24 23:40:34

2012-12-28 09:58:50

程序員代碼編程

2022-11-07 21:07:11

2021-12-06 20:23:40

機(jī)器學(xué)習(xí)數(shù)學(xué)

2012-08-08 14:33:32

IBMdW

2013-10-15 16:27:51

2017-09-07 16:52:23

2017-11-13 14:38:53

深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)

2016-10-08 18:02:21

SQL Server安裝設(shè)置與實(shí)踐

2011-05-05 17:13:25

故障筆記本

2010-06-07 15:25:06

rsync重啟

2016-09-19 00:13:15

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 一级特黄a大片 | 国产精品欧美一区二区 | 精品一区精品二区 | 国产精品欧美精品日韩精品 | 男女羞羞在线观看 | 一区二区三区在线免费观看 | 午夜视频在线免费观看 | 久久大 | 国产乱码久久久久久一区二区 | 一区二区三区视频在线免费观看 | 欧美区在线观看 | 日本羞羞影院 | 亚洲二区在线观看 | 少妇一级淫片免费播放 | 黄色三级毛片 | 精品国产18久久久久久二百 | 激情av | 伊人春色在线观看 | 午夜精品视频在线观看 | 国产剧情一区二区三区 | 国产999精品久久久久久 | 免费播放一级片 | 欧美99久久精品乱码影视 | 久久精品一区 | 成年免费在线观看 | 蜜桃传媒av | 国产乱码精品一品二品 | 91 久久 | av电影一区二区 | 秋霞电影一区二区 | 久久精品国产免费看久久精品 | 国外成人免费视频 | 黄色免费在线观看网站 | 911精品美国片911久久久 | 国产欧美日韩精品一区二区三区 | 久久久久久久97 | 日日干夜夜操 | 中文字幕在线第二页 | 一区二区免费看 | 国产一级片 | 中文字幕蜜臀av |