導航:首頁 > 源碼編譯 > 演算法習題

演算法習題

發布時間:2022-01-14 18:46:28

演算法題 給思路即可

defgen_eq(num):
l1=[]
forainrange(1,num//2+1):
b=num-a
fori3inrange(1,num//3):
fori2inrange(1,(num-i3*3+1)//2):
i1=num-2*i2-3*i3
yield'num={0}+{1}={2}+{3}+{3}+{4}+{4}+{4}'.format(a,b,i1,i2,i3)

num_str=input('輸入一個整數:')
num=int(num_str)
foreingen_eq(num):
print(e)

㈡ 操作系統LRU演算法習題求解!!!

LRU隊列長度為 (384/128) = 3。
87、138、277、56、390、532、285、410、45、180、330、190
對應的頁面號依次為:

0 、 1 、 2 、 0 、 3 、 4 、 2 、 3 、 0 、 1 、 2 、 1
然後看看那幾個頁面會缺頁:
0、1、2 都會缺頁,因為一開始內存裡面什麼頁面都沒有。
0會命中。 現在內存裡面頁面的LRU順序為0,2,1
3、4都會缺頁。 內存中沒有。 現在內存裡面LRU順序為 4,3,0
2會缺頁。 內存中沒有。 LRU順序為 2,4,3
0、1會缺頁。 內存中沒有。 LRU順序為 1,0,2
2、1會命中。

總共12次訪問,只有3次命中,9次失效。
失效率為 9/12 = 75%

㈢ 幾個關於演算法的題目

第1題,先統計一下每一點的入度和出度,出度代表認為幾個人,入度代表被幾個人認識。
最後看看哪一個人的入度是==n-1,出度是0的就行

大整數相乘的話可以模擬小學生擺豎式。
先把數字的每一位存在整型數組中。
然後一位一位乘過去。把結果加起來就行。復雜度是n*m

最後一個是狀態壓縮DP
設dp[i][j]代表前i-1已經擺好,第i行每一狀態是j的情況下的種數。

然後按行行轉移。
復雜度是2^n*2^n*n

㈣ 演算法題。。

//這是我提交的代碼,僅供參考

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

structNode
{
intX;
intY;
intY_tmp;
intl;
intr;
intcapacity;
}node[100001];


intN,R;

intcmp(structNode*a,structNode*b)
{
returna->r-b->r;
}

intIs_Sucess(intmiddle)
{
inti,j,start=0;
for(i=0;i<N;i++)
{
node[i].capacity=middle;
j=start;
while(node[i].capacity>0&&node[j].l<=node[i].X&&j<N)
{
/* if(node[j].Y_tmp==0)
{
j++;
continue;
}*/
if(node[j].r<node[i].X&&node[j].Y_tmp>0)
return0;
if(node[j].l<=node[i].X&&node[j].r>=node[i].X)
{
if(node[i].capacity>=node[j].Y_tmp)
{
node[i].capacity-=node[j].Y_tmp;
node[j].Y_tmp=0;
start=j+1;
}
else
{
node[j].Y_tmp-=node[i].capacity;
node[i].capacity=0;
}
}
j++;
}
}
if(node[N-1].Y_tmp>0)
return0;
return1;
}

intBinary_Search(inthigh,intlow)
{
inti,middle;
while(high!=low)
{
middle=(high+low)/2;
for(i=0;i<N;i++)
node[i].Y_tmp=node[i].Y;
if(Is_Sucess(middle))
high=middle;
else
low=middle+1;
}
returnhigh;
}

intmain()
{
intT;
inti,j;
inthigh;
longlongintlow;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&N,&R);
low=0;
high=0;
for(i=0;i<N;i++)
{
scanf("%d%d",&node[i].X,&node[i].Y);
node[i].l=node[i].X-R;
node[i].r=node[i].X+R;
if(high<node[i].Y)
high=node[i].Y;
low+=node[i].Y;
}
qsort(node,N,sizeof(node[0]),cmp);
low=low/N;
high=Binary_Search(high,low);
printf("%d ",high);
}
system("pause");
return0;
}

㈤ Java演算法練習題

我就直接根據你提供的數組數值來了,沒有打注釋,有什麼不懂的可以繼續追問。

public class ThreeSum {

public static void main(String[] argv) {

int a[][] = {

{ 259, 132, 799, 113 },

{ 332, 262, 209, 863 },

{ 807, 301, 684, 343 }

};

int[] b = new int[12];

int max;

int index = 0;

for ( int i = 0; i < 3; i++ ) {

for ( int j = 0; j < 4; j++ ) {

b[index++] = sum(a[i][j]);

}

}

max = b[0];

index = 0;

for ( int i = 1; i < 12; i++ ) {

if ( max < b[i] ) {

max = b[i];

index = i;

}

}

System.out.println("數字之和最大的數為: " + max);

System.out.printf("該數組的位置為: a[%d][%d] ", index / 4, index % 4);

}

public static int sum(int a) {

return (int)( ( a / 100 ) + ( ( a % 100) / 10 ) + ( a % 10 ) );

}

}

結果圖如下:

㈥ 一個演算法題

python">#py3
deffun(lis,n):
foriinlis:#循環從lis中取出i
if(n-i)inlis://如果n-i在lis中,即找到了兩個和街於n的數
returni,n-i//返回
li=[1,2,3,4,5,6,8,9]
print(fun(li,7))

閱讀全文

與演算法習題相關的資料

熱點內容
怎麼教育孩子的app 瀏覽:172
交叉編譯的輸出文件 瀏覽:330
手機app怎麼變更辦稅員 瀏覽:936
sql服務停用命令 瀏覽:912
為什麼系統要用兩個雲伺服器 瀏覽:680
兩個pdf怎麼合並 瀏覽:293
php查詢為空 瀏覽:589
香港伺服器丟包了怎麼辦 瀏覽:46
linux系統管理教程 瀏覽:643
共享文件夾怎麼設置只讀文件 瀏覽:295
小米添加雲伺服器地址 瀏覽:581
qt入門pdf 瀏覽:670
視頻監控取消默認加密 瀏覽:294
雲伺服器怎麼設置輸入鍵盤 瀏覽:817
單片機支持多大mhz 瀏覽:42
linux啟動mysql命令 瀏覽:792
編程和游戲買什麼筆記本 瀏覽:902
程序員座點陣圖片大全 瀏覽:142
aix重啟命令 瀏覽:462
騰訊雲伺服器的後台 瀏覽:48