2.背包问题:
#include "stdio.h" #define N 3 /*物品的最大件数*/ #define M 20 /*背包的载重*/
/*
此函数为贪心算法,参数x表示解向量,参数n表示物品的件数,参数w表示物品的
重量构成的数组,参数m表示背包的载重,参数b表示单位重量收益按非增次数排列
时的下标变化情况。
*/
void GreedyKnapsack(float *x,int n,float *w,float m,int *b)
{
int i;
float u=m;
for(i=0;i<n;i++)x[i]=0;/*对解向量x初始化*/
/*-------------------------------------------------------------*/
/*按最优量度标准选择解的分量*/
for(i=0;i<n;i++)
{
if(w[b[i]]>u)break;
x[b[i]]=1.0;
u=u-w[b[i]];
}
if(i<n)x[b[i]]=u/w[b[i]];
}
//主函数 void main() { float t; int a[N];/*存储单位重量收益按非增次数排列时的下标变化情况,例如,N=3时,若p[2]/w[2]>p[0]/w[0]>p[1]/w[1],则a[N]={2,0,1}*/ float x[N];/*解向量*/ int i,j,m,r; float w[]={18,15,10};/*依次存储n个物品重量的数组*/ float p[]={25,24,15};/*依次存储n个物品收益的数组*/ float pw[N];/*依次存储单位重量收益p[i]/w[i]的数组*/ /*输出各物品重量*/ printf(" 各物品的重量: "); for(i=0;i<N;i++) { printf("w[%d]=%f ",i,w[i]); } /*输出各物品收益*/ printf(" 各物品装入背包的收益: "); for(i=0;i<N;i++) { printf("p[%d]=%f ",i,p[i]); } /*计算各物品的单位重量收益*/ for(i=0;i<N;i++) { pw[i]=p[i]/w[i]; } /*输出各物品的单位重量收益*/ printf(" 各物品的单位重量收益如下: "); for(i=0;i<N;i++) { printf("pw[%d]=%f ",i,pw[i]); } /*以顺序初始化数组a*/ for(i=0;i<N;i++) { a[i]=i; } /*对单位重量收益数组按非增次序进行排序,并将单位重量收益按非增次数排列时的下标变化情况存放在数组a中*/ for(i=0;i<N;i++) { m=i; t=pw[i]; for(j=i+1;j<N;j++) { if(pw[j]>t) { m=j; t=pw[j]; } } if(m!=i) { t=pw[i]; pw[i]=pw[m]; pw[m]=t; r=a[i]; a[i]=a[m]; a[m]=r; } } /*输出单位重量收益按非增次数排列时的下标变化情况*/ printf(" 单位重量收益按非增次数排列时的下标变化情况: "); for(i=0;i<N;i++) { printf("a[%d]=%d ",i,a[i]); } GreedyKnapsack(x,N,w,M,a); /*用贪心算法求解背包问题*/ /*输出解向量*/ printf(" 解向量: "); for(i=0;i<N;i++) { printf("x[%d]=%f ",i,x[i]); } }
提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑提速啦的市场定位提速啦主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。提速啦的售后保证提速啦退款 通过于合作商的友好协商,云服务器提供3天内全额退款,超过3天不退款 物理机部分支持当天全额退款提速啦提现 充...
前几天有关注到Megalayer云服务器提供商有打算在月底的时候新增新加坡机房,这个是继美国、中国香港、菲律宾之外的第四个机房。也有工单询问到官方,新加坡机房有包括CN2国内优化线路和国际带宽,CN2优化线路应该是和菲律宾差不多的。如果我们追求速度和稳定性的中文业务,建议还是选择CN2优化带宽的香港服务器。这里有要到Megalayer新加坡服务器国际带宽的测试服务器,E3-1230配置20M国际带...
buyvm正式对外开卖第四个数据中心“迈阿密”的块存储服务,和前面拉斯维加斯、纽约、卢森堡一样,依旧是每256G硬盘仅需1.25美元/月,最大支持10T硬盘。配合buyvm自己的VPS,1Gbps带宽、不限流量,在vps上挂载块存储之后就可以用来做数据备份、文件下载、刷BT等一系列工作。官方网站:https://buyvm.net支持信用卡、PayPal、支付宝付款,支付宝付款用的是加元汇率,貌似...