欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
背包問(wèn)題
#define N 4 /*物品個(gè)數*/
#define W 5/*背包容量*/
#include <stdio.h>

/*******************************************************************
*************以下為動(dòng)態(tài)規劃算法解0-1背包問(wèn)題****************/
int min(int a,int b)
{
return (a<b) ? a : b;
}
float max(float a,float b)
{
return (a>b) ? a : b;
}
void Knap(float*v,int *w,int c,float m[N+1][W+1])
{
int i,j;
int jMax=min(w[N]-1,c);
for(j=0;j<=jMax;j++) m[N][j]=0;
for(j=w[N];j<=c;j++) m[N][j]=v[N];
for(i=N-1;i>1;i--)
{
  jMax=min(w[i]-1,c);
  for(j=0;j<=jMax;j++) m[i][j]=m[i+1][j];
  for(j=w[i];j<=c;j++) m[i][j]=max(m[i+1][j],m[i+1][j-w[i]]+v[i]);
}
m[1][c]=m[2][c];
if(c>=w[1]) m[1][c]=max(m[1][c],m[2][c-w[1]]+v[1]);
}
void Traceback(float m[N+1][W+1],int *w,int c,int *x)
{
int i;
for(i=1;i<N;i++)
  if(m[i][c]==m[i+1][c]) x[i]=0;
  else {x[i]=1; c-=w[i];}
x[N]=( (m[N][c]) ? 1 : 0 );
}
void Knapsack_1(float*v,int *w,int c,float m[N+1][W+1],int *x)
{
Knap(v,w, c,m);
Traceback(m,w,c,x);
}

/*******************************************************************
*****************以下為貪心算法解背包問(wèn)題*********************/
void sort(float *v,float *w)
{
int i,j;
float temp;
for(i=1;i<N;i++)
  for(j=i+1;j<=N;j++)
   if(v[i]/w[i]<v[j]/w[j])
   {
    temp=v[i]; v[i]=v[j]; v[j]=temp;
    temp=w[i]; w[i]=w[j]; w[j]=temp;
   }
}
void Knapsack_2(float c,float *v,float *w,float *y)
{
int i;
sort(v,w);
for(i=1;i<=N;i++) y[i]=0;
for(i=1;i<=N;i++)
{
  if(w[i]>c) break;
  y[i]=1;
  c-=w[i];
}
if(i<=N)
  y[i]=c/w[i];
}

/*******************************************************************
*************************以下為主函數***************************/
main()
{
float m[N+1][W+1] , v[N+1]={N,1,2,2,1} , w_2[N+1]={N,2,1,2,3} , c_2=W;/*v[]存儲價(jià)值,w[]存儲質(zhì)量,c為背包容量*/
int w_1[N+1]={N,2,1,2,3},c_1=W;
float y[N+1];
int x[N+1];
int i,j;
float vSum=0,wSum=0;
Knapsack_1(v,w_1,c_1,m,x);
printf("利用線(xiàn)性規劃算法后,背包中的物品價(jià)值和質(zhì)量為:\n");
j=0;
for(i=1;i<=N;i++)
  if(x[i])
  {
   printf("物品%d的價(jià)值為%g、質(zhì)量為%d\n",++j,v[i],w_1[i]);
   vSum+=v[i]; wSum+=w_1[i];
  }
printf("背包中總價(jià)值為%g、總質(zhì)量為%g、背包剩余容量為%g\n",vSum,wSum,c_1-wSum);

Knapsack_2(c_2,v,w_2,y);
vSum=wSum=0;
j=0;
printf("\n利用貪心算法后,背包中的物品價(jià)值和質(zhì)量為:\n");
for(i=1;i<=N;i++)
  if(y[i])
  {
   printf("物品%d的價(jià)值為%g、質(zhì)量為%g\n",++j,v[i]*y[i],w_2[i]*y[i]);
   vSum+=v[i]*y[i]; wSum+=w_2[i]*y[i];
  }
printf("背包中總價(jià)值為%g、總質(zhì)量為%g、背包剩余容量為%g\n",vSum,wSum,c_2-wSum);

printf("\n注:兩個(gè)算法得出的結果不一定相同,這是正常的。\n");
}
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
0-1 背包問(wèn)題的動(dòng)態(tài)規劃解法@Java實(shí)現 Source ForgeT Source F...
動(dòng)態(tài)規劃之背包問(wèn)題(一)
用于顯示任意float在內存中的二進(jìn)制數
knapsack 和 backpack 的區別是什么?
C語(yǔ)言練習題精選
菜鳥(niǎo)學(xué)C_整數計算器
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久