當前位置:首頁 » 操作系統 » 演算法的序列

演算法的序列

發布時間: 2022-01-12 19:55:26

A. 銀行演算法怎麼求出全部安全序列

先說一下銀行家的演算法:
設進程cusneed提出請求REQUEST
[i],則銀行家演算法按如下規則進行判斷。
(1)如果REQUEST
[cusneed]
[i]<=
NEED[cusneed][i],則轉(2);否則,出錯。
(2)如果REQUEST
[cusneed]
[i]<=
AVAILABLE[i],則轉(3);否則,等待。
(3)系統試探分配資源,修改相關數據:
AVAILABLE[i]-=REQUEST[cusneed][i];
ALLOCATION[cusneed][i]+=REQUEST[cusneed][i];
NEED[cusneed][i]-=REQUEST[cusneed][i];
(4)系統執行安全性檢查,如安全,則分配成立;否則試探險性分配作廢,系統恢復原狀,進程等待。
=================================================
題目中的計算過程:
先算出每個進程還需要多少進程才能滿足,即Request的值
=
Need
-
Allocation
進程名
Allocation
Need
Request
Available
ABC
ABC
ABC
ABC
P1
4
0
5
4
0
11
0
0
6
2
3
3
P2
4
0
2
5
3
6
1
2
4
P3
2
1
4
4
2
5
2
1
1
P4
2
1
2
5
5
9
3
4
7
P5
3
1
3
4
2
4
1
1
1
第一題A項p3
p1
p4
p2
p5
先分配給P3,其Request(2,1,1)
<
available(2,2,3)
滿足,分配資源等待P3完成,P3進程完成之後,Available
=
(2,1,4)
+
(2,3,3)
=
(4,4,7)
然後分配給p1,其Request(0,0,6)
<
available(4,4,7),可以滿足資源,分配資源給P1,P1完成任務釋放資源Available
=
(4,0,5)
+(4,4,7)
=
(8,4,12)
接著P4,request(3
4
7)
<
available(8,4,12),可以滿足資源,分配資源給P4,P4完成任務釋放資源Available
=
(2,1,2)
+(8,4,12)
=
(10,5,14)
接著p2,request(1
2
4)
<
available(10,5,14)可以滿足資源,分配資源給P4,P4完成任務釋放資源Available
=
(4,0,2)+
(10,5,14)
=
(14,5,16)
最後P5,request(1
1
1)
<
available(14,5,16)可以滿足資源,分配資源給P4,P4完成任務,資源全部釋放,變為(3
1
3
)+
(14,5,16)
=
(17,6,19)
所以A是安全序列。
同理分析B
p1
p3
p5
p2
p4,先分配給P1的話Request(0,0,6)
>
available(2,3,3),C資源不滿足,所以該序列不安全。
分析C項p4
p2
p3
p5
p1,先分配給p4,
Request(3,4,7)
>
available(2,3,3),ABC資源都不滿足,該序列不安全。
分析D項p2
p3
p1
p4
p5,先分配給P2,Request(1,2,4)
>
available(2,3,3),C資源不滿足,所以該序列不安全。
第二題,分析方法跟上面的一樣,只是比較費時。如果單選的話,看一下答案,D項,先分配給P4,顯然完成P4還需(
3
4
7)
,其大於
available,所D項不安全。

B. . 寫一個演算法,判斷依次讀入的一個以@為結束符的字母序列,是否為形如『序列1&序列2』模式的字元序列。

分析分析,研究研究。
要判斷輸入的序列的模式是不是----序列1&序列2。用==來判斷肯定是不行地。那就只要判斷判斷當中有且只有一個&。且&不在第一個位置上和最後一個位置上就可以了。

具體的做法么~
char s[20]//來個存放的位置,當然你可以更加專業的malloc來節約空間
fget(s,20,stdin);//好了,放進去了。
然後我不高興一個命令一個命令寫了
來個指針指到s[0];
然後遍歷就可以了。要記錄的是&出現了幾次以及他們出現的位置。比如指針指到5的時候 發現了&。先把&的統計+1,然後把5記錄下來。只要統計只有1 而且&出現數不是1或者strlen(序列)的位置,那就可以了。

C. 設計演算法,判斷輸入序列12。。。n的任一排列p1p2…pn是否是棧的正確輸出序列。 求編程c語言

等價為能否構造樹(前序+中序)代碼晚上奉上

D. 序列號演算法

下載一個對應軟體、對應版本的注冊機,自己就可以計算了。

E. 設一個棧的輸入序列為1,2,3,...,n-1,n。請編寫一個演算法,判斷一個序列p1,p2,p3,...,pn

#include<stdio.h>

#define StackLen 50
#define DLen 10

int Pop[DLen]={7,10,9,8,6,5,4,3,2,1},pPop=0;

int DS[StackLen],pDS=-1;
int pPush=0,iStep=0;

int fPush(int d);
int fPop();

void main()
{
int i;
for(;pPop<DLen;pPop++)
{
for(i=pPush;i<Pop[pPop];i++)
{
fPush(pPush+++1);
//pPush++;
}
if(fPop()!=Pop[pPop])
{
printf("ERROR! I Can not find a way to pop the data!\n");
return;
}
}
printf("Mission is well done!\n");
}

int fPush(int d)
{
if(pDS>=StackLen){printf("Stack Overflow!\n");return -1;}
DS[pDS++]=d;
printf("%d:Push %d in Stack[%d]\n",iStep++,d,pDS);
return d;
}

int fPop()
{
int d;
if(pDS<0){printf("Stack empty!\n");return -1;}
d=DS[--pDS];
printf("%d:Pop %d from Stack[%d]\n",iStep++,d,pDS+1);
return d;
}

F. 設計演算法以判斷對輸入序列1,2,3…n,序列a1,a2,a3…an是否是該棧的合法的輸出序列

模擬這個過程,搞一個棧,向棧中加數直到ai然後去掉ai,然後如果ai+1在棧中而不在棧頂,則不合法,若在棧頂則直接刪掉,否則重復剛才的過程。

G. 寫一個演算法,判斷依次讀入的一個以@為結束符的字母序列 ,是否為形如「序列1&序列2」模式的字元序列。

#include<stdio.h>
#include<string.h>

int main()
{
char s[200];
char m[100];
char n[100];
int i,j;
while(scanf("%s",s) == 1) {
int len = strlen(s);
for(i = 0;i<len;i++) {
if(s[i] == '&'){
m[i] = '\0';
break;
}
else m[i] = s[i];
}
for(j = len-1;j>=0;j--) {
if(s[j] == '&') {
n[len-1-j] = '\0';
break;
}
else n[len-1-j] = s[j];

}
if(i == j && strcmp(m,n) == 0) printf("YES\n");
else printf("NO\n");

}
return 0;

}

H. 計算機中,演算法指的是解決某一問題的有限運算序列,它必須具備什麼

計算機中,演算法指的是解決某一問題的有限運算序列,它必須具備確定性、有效性、有窮性、0個或者多個輸入、1個或者多個輸出。

演算法中的指令描述的是一個計算,當其運行時能從一個初始狀態和(可能為空的)初始輸入開始,經過一系列有限而清晰定義的狀態,最終產生輸出並停止於一個終態。一個狀態到另一個狀態的轉移不一定是確定的。隨機化演算法在內的一些演算法,包含了一些隨機輸入。



(8)演算法的序列擴展閱讀:

演算法的分類

演算法可大致分為基本演算法、數據結構的演算法、數論與代數演算法、計算幾何的演算法、圖論的演算法、動態規劃以及數值分析、加密演算法、排序演算法、檢索演算法、隨機化演算法、並行演算法,厄米變形模型,隨機森林演算法。

1、有限的,確定性演算法 這類演算法在有限的一段時間內終止。他們可能要花很長時間來執行指定的任務,但仍將在一定的時間內終止。這類演算法得出的結果常取決於輸入值。

2、有限的,非確定演算法 這類演算法在有限的時間內終止。然而,對於一個(或一些)給定的數值,演算法的結果並不是唯一的或確定的。

3、無限的演算法,是那些由於沒有定義終止定義條件,或定義的條件無法由輸入的數據滿足而不終止運行的演算法。通常,無限演算法的產生是由於未能確定的定義終止條件。



I. 求一個序列號生成的演算法

機器碼字元串直接求MD5就可以,然後截到需要的長度,嫌簡單可以再加異或之類的

熱點內容
伺服器如何搭建多個ip 發布:2024-11-15 19:42:10 瀏覽:102
價錢低高配置的有哪些車 發布:2024-11-15 19:34:53 瀏覽:380
androidgps定位開發 發布:2024-11-15 19:34:52 瀏覽:334
如何掃碼添加伺服器地址 發布:2024-11-15 19:31:48 瀏覽:278
sql語句復制資料庫 發布:2024-11-15 19:28:02 瀏覽:837
演算法的薪資 發布:2024-11-15 19:15:22 瀏覽:322
ubuntu可以重新編譯嗎 發布:2024-11-15 19:09:10 瀏覽:649
access資料庫表的創建 發布:2024-11-15 18:51:18 瀏覽:141
怎麼搭建信令伺服器 發布:2024-11-15 18:48:03 瀏覽:578
如何解鎖安卓手機鎖屏圖 發布:2024-11-15 18:47:48 瀏覽:966