日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

递归与递推 普通排队问题及带约束条件的排队问题 c代码

發布時間:2025/4/5 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 递归与递推 普通排队问题及带约束条件的排队问题 c代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先看下題目:

電影院買票排隊,票價50,排隊的人中攜帶50元的有20個人,攜帶100的有10個人,售票處開始時沒有余額, 問最多有多少種排隊方式使得售票處能夠找的開(攜帶相同數額的人交換位置算一種排隊方式)。

畫圖的話比較容易理解,二叉圖,根節點為50,然后往下排列,從根節點到葉子節點即為一個排隊方式。設f(m,n),其中m為50的個數,n為100的個數,f(m,n)表示排隊方式,當m>=20或者n>=10時,排隊結束,這是再插入節點只有一種方式,當m>n時,有兩個子節點,分別時50和100,當m==n時,只有一個節點,即50節點。這樣能夠得到遞歸公式。

int f(int m50, int n100, int m, int n) {if (m50 == m || n == n100)return 1;else if (m50 > n100)return f(m50+1, n100, m, n) + f(m50, n100+1, m, n);else if (m50 == n100) return f(m50+1, n100, m, n);elseprintf("邏輯錯誤!");return 0; }

二叉圖:

?

通過遞歸公式也很容易得到遞推的方法,f[m][n] = f[m-1][n] + f[m][n-1],這里m>=n,邊界條件f[m][0] = 1, f[m][n] = 0(m< n)。

這里最好使用遞推來解決,因為遞推使用兩層循環,時間復雜度為O(n^2),使用遞歸的話時間復雜度為O(3^n),差距太大。

這道題還有一種擴展,擴展題目增加了約束條件,"第五位必須是50,第八位必須是100",如果還是使用二叉圖來看可能不是那么容易分析,我們可以使用下面的圖來分析:

橫坐標為50,縱坐標為100,坐標圖上的點f[m][n]表示排隊方式,約束條件是在f(4,1)和f(3,2)這個點,沒有約束條件情況下

f(4,1) = f(4,0) + f(3,1),f(3,2) = f(3,1) + f(2,2),即有從左到右和從下到上兩種方式,根據約束條件,到達f(4,1)這個點不能是f(4,0),因為第五位必須是50,同理可以看到f(3,2)不能由f(3,1)得到,對于第八位是100的約束,可以采用同樣的分析方法,在遞歸或者遞推處理中針對這幾個點做特殊處理。帶約束條件的擴展題通過圖2可能更容易理解。

下面是普通排隊和擴展題的c代碼:

/* * 排隊問題*/#include <stdio.h> #define NUM 100int f(int m50, int n100, int m, int n) {if (m50 == m || n == n100)return 1;else if (m50 > n100)return f(m50+1, n100, m, n) + f(m50, n100+1, m, n);else if (m50 == n100) return f(m50+1, n100, m, n);elseprintf("邏輯錯誤!");return 0; }void main() {int i,j,m,n,k[NUM][NUM]={0};//遞歸處理printf("分別輸入持有50和100幣值的人數:"); scanf("%d %d", &m, &n);printf("當持有50的人數為%d,持有100的人數為%d,總的排隊方式有:%d\n",m,n, f(1,0,m,n));//遞推方式for (i = 1; i <= m; i++)k[i][0] = 1;for (j = 1; j <= n; j++) for (i = 0; i < j; i++)k[i][j] = 0;for (i = 1; i <= m; i++)for (j = 1; j <= n && j <= i; j++)k[i][j] = k[i-1][j] + k[i][j-1];printf("當持有50的人數為%d,持有100的人數為%d,總的排隊方式有:%d\n",m,n, k[m][n]); }

帶約束條件的擴展題:

/** 帶約束條件的排隊問題*/#include <stdio.h>#define NUM 100void main() {int i,j,m,n,k[NUM][NUM]={0};printf("分別輸入持有50和100幣值的人數:"); scanf("%d %d", &m, &n);//遞推方式for (i = 1; i <= 7; i++)k[i][0] = 1;for (j = 1; j <= n; j++) for (i = 0; i < j; i++)k[i][j] = 0;for (i = 1; i <= m; i++)for (j = 1; j <= n && j <= i; j++){if ((i == 4 && j == 1) || (i == 3 && j == 2) )k[i][j] = k[i-1][j];if((i == 7 && j == 1) ||(i == 6 && j == 2)||(i == 5 && j == 3))k[i][j] = k[i][j-1];else k[i][j] = k[i-1][j] + k[i][j-1];}printf("當持有50的人數為%d,持有100的人數為%d,總的排隊方式有:%d\n",m,n, k[m][n]); }

參考資料:

1.?數據結構?: C語言版/ 嚴蔚敏,吳偉民編著

=============================================================================================

Linux應用程序、內核、驅動開發交流討論群(745510310),感興趣的同學可以加群討論、交流、資料查找等,前進的道路上,你不是一個人奧^_^。

總結

以上是生活随笔為你收集整理的递归与递推 普通排队问题及带约束条件的排队问题 c代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 先锋资源中文字幕 | 无码av免费毛片一区二区 | 久久人人爽人人爽 | 激情网五月 | 精品人妻一区二区三区久久嗨 | 农村妇女毛片精品久久久 | 极品少妇在线观看 | 黑人一区二区 | 国产777| 欧美女同视频 | 婷婷看片 | 天天舔天天射天天干 | 香港三级韩国三级日本三级 | 少妇特殊按摩高潮惨叫无码 | 国产午夜亚洲精品午夜鲁丝片 | 亚州精品国产精品乱码不99按摩 | 色婷婷在线影院 | 日本涩涩网站 | 欧av在线| 欧美三级一区二区三区 | jizz性欧美2 视频在线日韩 | 九七超碰在线 | 九七久久| 成人免费看片入口 | www.四虎影视 | 天天综合永久 | av在线免费播放 | 在线观看国产福利 | 午夜精品久久久久久久99黑人 | 三级无遮挡 | 成人在线视频网 | 精品裸体舞一区二区三区 | 欧美日韩免费看 | 亚洲一区自拍偷拍 | 精品国产一区二区三区性色 | 久久网站免费看 | 成人av在线网 | 超碰在线91 | 精品少妇一区二区三区免费观看 | 香蕉视频官网在线观看 | 黄页网站在线 | 麻豆tv在线观看 | 加勒比精品在线 | 视频一区二区三区精品 | 国产精品日韩欧美 | 精品播放 | 国产女教师一区二区三区 | 日本中文不卡 | 国产夜色精品一区二区av | 一区二区有码 | av视觉盛宴 | 国产欧美精品一区二区色综合朱莉 | 九九久久精品 | 国产伦精品一区二区三区视频孕妇 | 好吊视频一区二区三区四区 | 制服丝袜在线一区 | 妺妺窝人体色www聚色窝仙踪 | 国产黄色在线 | 色香欲综合网 | 中文字幕在线一区 | 欧美黄色大片免费看 | 国产精品果冻传媒 | 久免费一级suv好看的国产 | 天堂在线中文网 | 欧美性受xxxx狂喷水 | 国产亚洲精品av | 狼人香蕉 | 黄大色黄大片女爽一次 | 亚洲va久久久噜噜噜无码久久 | 三级全黄做爰龚玥菲在线 | 激情六月| 综合久久五月 | 怡红院av久久久久久久 | 国产一级片麻豆 | 夜夜躁很很躁日日躁麻豆 | 国产乱码精品一区二三赶尸艳谈 | 精品视频在线观看一区二区 | 18一20岁毛毛片 | 一区二区三区在线观 | 国产午夜福利在线播放 | 青青青国产| 国产精品theporn动漫 | 91国产视频在线 | 中日韩黄色大片 | 国产一区在线免费观看 | 亚洲欧美一区二区三区四区 | 在线观看国产黄色 | 嫩草视屏 | 伊人精品在线视频 | 91免费在线视频 | 久操视频在线观看 | 五十路av在线 | 亚洲精品久久久久久国 | 韩国电影一区 | 美女涩涩视频 | 乳女教师の诱惑julia | 99涩涩 | 婷婷色中文字幕 | 一区二区免费视频 |