推荐一款荣耀 V20,全网通8GB+128GB,华为商城目前售价2399元,手机参数信息如下:
1、屏幕:屏幕尺寸:6.4英寸,屏幕色彩为1670万色,分辨率:FHD+ 2310×1080像素,屏占比为91.82%,高清大屏,魅眼全视屏,沉浸全视界,令你沉浸于精彩纷呈的显示画面中。
cmaedu.com2、拍照:后置摄像头:4800万像素(f/1.8光圈)+TOF立体深感镜头,支持自动对焦,前置摄像头:2500万像素,f/2.0光圈,支持固定焦距,拍照功能:AI拍照、夜景、人像(含背景虚化、美肤、美体)、趣AR(含Qmoji、AR合影、趣味变装、百变背景)、动态照片、拍照、专业拍照、录像、专业录像等,4800万像素摄像头搭配AI超清算法,照片细节放大后依然清晰。
3、性能:采用Magic UI 2.0.1(基于Android 9)系统,搭载新一代AI芯片麒麟980处理器,智慧大脑疾速运转,运行更畅快,玩游戏轻松无压力。
4、电池:电池容量:4000mAh(典型值),标配充电器支持4.5V/5A或5V/4.5A或5V/2A输出,手机理论充电时间约1.5小时,充电时间快,续航时间长。
您可以登录华为商城官网查看更多手机信息,根据个人爱好与需求进行选择。
/* 基于基本遗传算法的函数最优化 */
cmaedu.com/* 同济大学计算机系 王小平 2000年5月 */
#includestdio.h
#includestdlib.h
cmaedu.com#includegraphics.h
#includemath.h
cmaedu.com#includetime.h
cmaedu.com#includestring.h
#include "graph.c"
cmaedu.com#include "operator.c"
#define POP_SIZE 25 /* 种群大小 */
cmaedu.com#define G_LENGTH 8 /* 染色体长度 */
cmaedu.com#define C_RATE 0.2 /* 交叉概率 */
cmaedu.com#define M_RATE 0.01 /* 变异概率 */
#define XMAX 255 /* 函数变量最大值 */
cmaedu.com#define X1 350 /* 函数图形区窗口左上点X坐标 */
#define Y1 40 /* 函数图形区窗口左上点Y坐标 */
#define XR1 255 /* 函数图形区窗口长度 */
#define YR1 200 /* 函数图形区窗口高度 */
#define X2 360 /* 适应度图形区窗口左上点X坐标 */
#define Y2 280 /* 适应度图形区窗口左上点Y坐标 */
#define XR2 250 /* 适应度图形区窗口长度 */
#define YR2 100 /* 适应度图形区窗口宽度 */
#define STEP 2 /* 适应度图形区X方向步长 */
cmaedu.comvoid initialize_gene(gene,pop_size,g_length)
/* 种群中个体遗传基因型的初始化 */
cmaedu.comunsigned char *gene; /* 遗传基因 */
cmaedu.comint pop_size; /* 种群大小 */
int g_length; /* 个体染色体长度 */
int i,j;
randomize();
cmaedu.com for(i=0;ipop_size;i++)
cmaedu.com for(j=0;jg_length;j++)
cmaedu.com *(gene+i*g_length+j)=random(2);
int gene_to_pheno(gene,g_length)
cmaedu.com/* 基因型到表现型的变换--解码 */
cmaedu.comunsigned char *gene; /* 基因型 */
int g_length; /* 染色体长度 */
int i,pheno;
cmaedu.com pheno=0;
cmaedu.com for(i=0;ig_length;i++)
cmaedu.com pheno=pheno*2+*(gene+i);
return(pheno);
cmaedu.comvoid calc_fitness(gene,fitness,pop_size,g_length,func, max_fit,avg_fit)
cmaedu.com /* 计算种群中个体的适应度 */
unsigned char *gene; /* 个体的遗传基因 */
cmaedu.comdouble *fitness; /* 个体的适应度 */
cmaedu.comdouble *func; /* 评价函数 */
double *max_fit,*avg_fit; /* 最大适应度与平均适应度 */
cmaedu.comint pop_size; /* 种群大小 */
int g_length; /* 个体染色体长度 */
cmaedu.com unsigned char *g; /* 个体的遗传基因指针变量 */
cmaedu.com int pheno; /* 个体的表现型 */
int i,j;
double f;
*max_fit=0.0;
cmaedu.com *avg_fit=0.0;
f=(double)pop_size;
cmaedu.com for(i=0;ipop_size;i++)
cmaedu.com g=gene+i*g_length;
pheno=gene_to_pheno(g,g_length);
cmaedu.com *(fitness+i)=*(func+pheno);
if(*(fitness+i)*max_fit)
*max_fit=*(fitness+i);
*avg_fit=*avg_fit+*(fitness+i)/f;
void sga_reproduction(gene,fitness,new_gene,new_fitness,pop_size,g_length)
/* 基于个体的适应度评价进行新一代个体的选择(轮盘赌方法),选择后分别将新的基因型和适应度代入到新个体中 */
unsigned char *gene; /* 当前代的个体遗传基因型 */
cmaedu.comunsigned char *new_gene; /* 新一代的个体遗传基因型 */
double *fitness; /* 当前代的个体适应度 */
double *new_fitness; /* 新一代的个体适应度 */
cmaedu.comint pop_size; /* 种群大小 */
int g_length; /* 染色体长度 */
cmaedu.com double sum_of_fitness;
double border;
double r; /* 轮盘上的选择位置变量 */
int i,j;
cmaedu.com int num;
cmaedu.com sum_of_fitness=0.0;
cmaedu.com for(i=0;ipop_size;i++) /* 轮盘赌的选择循环 */
cmaedu.com sum_of_fitness=sum_of_fitness+*(fitness+i);
cmaedu.com for(i=0;ipop_size;i++)
r=sum_of_fitness*(random(10001)/10000.0);
num=0;
border=*fitness;
cmaedu.com while(borderr)
num++;
border=border+*(fitness+num);
cmaedu.com for(j=0;jg_length;j++)
cmaedu.com *(new_gene+i*g_length+j)=*(gene+num*g_length+j);
*(new_fitness+i)=*(fitness+num);
cmaedu.comvoid sga_crossover(gene,pop_size,g_length,c_rate)
cmaedu.com/* 基本遗传算法的交叉操作--单点交叉 */
cmaedu.comunsigned char *gene; /* 遗传基因 */
int pop_size; /* 种群大小 */
cmaedu.comint g_length; /* 个体染色体长度 */
double c_rate; /* 交叉概率 */
unsigned char *gene1; /* 父个体1的遗传基因指针变量 */
unsigned char *gene2; /* 父个体1的遗传基因指针变量 */
cmaedu.com unsigned char work; /* 中间变量 */
cmaedu.com int i,j;
cmaedu.com int c_pos; /* 交叉位置变量 */
double r; /* 随机数变量 */
cmaedu.com for(i=0;ipop_size-1;i=i+2)
r=random(10001)/10000.0;
cmaedu.com if(r=c_rate)
cmaedu.com gene1=gene+g_length*i;
cmaedu.com gene2=gene1+g_length;
cmaedu.com c_pos=random(g_length-2)+1;
cmaedu.com for(j=c_pos;jg_length;j++) /* 两个父个体之间部分遗传基因的交换 */
cmaedu.com { work=*(gene1+j);
*(gene1+j)=*(gene2+j);
*(gene2+j)=work;
void sga_mutation(gene,pop_size,g_length,m_rate)
cmaedu.com/* 基本遗传算法的变异操作--个体遗传基因按小概率翻转 */
cmaedu.comunsigned char *gene; /* 遗传基因 */
cmaedu.comint pop_size; /* 种群大小 */
cmaedu.comint g_length; /* 染色体长度 */
cmaedu.comdouble m_rate; /* 变异概率 */
cmaedu.com int i,j;
double r;
for(i=0;ipop_size;i++)
cmaedu.com for(j=0;jg_length;j++)
r=random(10001)/10000.0;
cmaedu.com if(r=m_rate) /* 变异发生判断 */
if ( *(gene+g_length*i+j)==0)
cmaedu.com *(gene+g_length*i+j)=1;
else
*(gene+g_length*i+j)=0;
void make_function(func,xmax)
cmaedu.com/* 生成一个函数, 用于最优化计算的目标函数(最大化) */
/* f=∑ai*sin(x* bi+ci) 其中 ai∈[0, 0.35]的均匀随机数
bi∈[2*pi, 5*2*pi] /xmax的均匀随机数
cmaedu.com ci∈[0, 2*pi]的均匀随机数
x∈[0,xmax]为优化变量
cmaedu.com i=1,2,3 */
double *func; /* 函数值 */
cmaedu.comint xmax; /* 变量最大值 XMAX */
cmaedu.com int x,i;
cmaedu.com double a[3],b[3],c[3];
cmaedu.com double pi=3.141592;
cmaedu.com double fxmax,fx,f_value;
cmaedu.com double f_min,f_max,f_mid,f_range;
double dbl;
cmaedu.com randomize();
cmaedu.com fxmax=(double)xmax;
for(i=0;i3;i++) /* 优化函数为三个三角函数之和 */
cmaedu.com a[i]=0.35*(random(10001)/10000.0);
cmaedu.com b[i]=(4*(random(10001)/10000.0)+1)*2.0*pi/fxmax;
cmaedu.com c[i]=2.0*pi*(random(10001)/10000.0);
f_min=1.0;
cmaedu.com f_max=0.0;
cmaedu.com for(x=0;x=xmax;x++) /* 将优化函数正规化为[0,1]区间数 */
cmaedu.com fx=(double)x;
f_value=0.0;
for(i=0;i3;i++)
dbl=b[i]*fx+c[i];
f_value=f_value+a[i]*sin(dbl);
cmaedu.com f_value=f_value+0.5;
cmaedu.com if(f_valuef_max) f_max=f_value;
if(f_valuef_min) f_min=f_value;
*(func+x)=(double)f_value;
f_range=f_max-f_min;
cmaedu.com f_mid=(f_max+f_min)/2.0;
for(x=0;x=xmax;x++)
cmaedu.com f_value=(*(func+x)-f_mid)/f_range+0.5;
if(f_value1.0) f_value=1.0;
else if(f_value0.0) f_value=0.0;
*(func+x)=f_value;
cmaedu.comvoid g_draw_func(func,xmax)
/* 绘制优化函数的图形 */
double *func; /* 函数值 */
int xmax; /* 变量最大值 */
int x,y,x_old,y_old,i;
cmaedu.com double f;
cmaedu.com g_rectangle(X1+1,Y1+1,X1+XR1-1,Y1+YR1-1,0,1);
cmaedu.com g_rectangle(X1+1,Y1-12,X1+XR1,Y1-1,8,1);
cmaedu.com g_rectangle(X1,Y1,X1+XR1,Y1+YR1,6,0);
cmaedu.com x_old=X1;
y_old=Y1+YR1-(int)(*func*YR1);
cmaedu.com f=XR1/(double)xmax;
for(i=1;i=xmax;i++)
cmaedu.com x=X1+(int)(i*f);
cmaedu.com y=Y1+YR1-(int)(*(func+i)*YR1);
cmaedu.com g_line(x_old,y_old,x,y,12);
x_old=x;
y_old=y;
void g_init_grph(func,xmax)
/* 初始化画面的图形 */
double *func; /* 函数值 */
int xmax; /* 变量最大值 */
cmaedu.com int x,y,x_old,y_old,i;
char c[5];
/*初始化函数图形区*/
cmaedu.com g_rectangle(320,0,639,399,8,1);
cmaedu.com g_rectangle(321,1,638,16,8,1);
cmaedu.com disp_hz16("基于基本遗传算法的函数最优化",370,1,15);
disp_hz16("g(x)",X1-30,Y1-18,15);
disp_hz16("1.0",X1-30,Y1,15);
disp_hz16("0",X1-10,Y1+YR1,15);
disp_hz16("x",X1+XR1+10,Y1+YR1-20,15);
disp_hz16("XMAX",X1+XR1-10,Y1+YR1,15);
cmaedu.com g_draw_func(func,xmax);
cmaedu.com /* 初始化适应度图形区 */
cmaedu.com g_rectangle(X2,Y2,X2+XR2,Y2+YR2,0,1);
g_rectangle(X2,Y2,X2+XR2,Y2+YR2,6,0);
cmaedu.com setcolor(15);
cmaedu.com disp_hz16("最大适应度",X2+5,Y2-18,15);
cmaedu.com g_line(X2+90,Y2-10,X2+110,Y2-10,11);
cmaedu.com setcolor(15);
disp_hz16("平均适应度",X2+120,Y2-18,15);
g_line(X2+205,Y2-10,X2+225,Y2-10,9);
setcolor(15);
disp_hz16("世代数",X2+168,Y2+YR2+10,15);
g_text(X2-30,Y2,15,"1.0");
cmaedu.com/* g_text(X2-30,Y2+YR2,15,"0.0");*/
void g_plot_grph(num,gene,fitness,pop_size,g_length,func, xmax,max_fit,m_f_old,avg_fit,a_f_old,gen_num)
/* 随世代进化更新图形 */
cmaedu.comunsigned char *gene; /* 遗传基因 */
double *fitness; /* 适应度 */
double *func; /* 函数值 */
double max_fit,m_f_old; /* 当前代最大适应度,上一代最大适应度 */
cmaedu.comdouble avg_fit,a_f_old; /* 当前代平均适应度,上一代平均适应度 */
int num; /* 当前世代数 */
cmaedu.comint pop_size; /* 种群大小 */
cmaedu.comint g_length; /* 染色体长度 */
int xmax; /* 变量最大值 */
int gen_num; /* 最大世代数 */
cmaedu.com int i,j,x,y,x_old,y_old;
cmaedu.com double f;
cmaedu.com unsigned char *g;
char c[10];
cmaedu.com /* 显示当前世代种群中个体的遗传基因 */
cmaedu.com if(num==gen_num-1)
cmaedu.com for(i=0;ipop_size;i++)
printf("Indv.%2d:",i+1);
for(j=0;jg_length;j++)
cmaedu.com printf("%d",*(gene+i*g_length+j));
printf("==Fitness %.4f\n",*(fitness+i));
printf("Max_fit=%f \n",max_fit);
cmaedu.com printf("Avg_fit=%f \n",avg_fit);
/* 显示个体在函数图形区中的位置 */
cmaedu.com g_draw_func(func,xmax);
cmaedu.com f=XR1/(double)xmax;
for(i=0;ipop_size;i++)
cmaedu.com g=gene+i*g_length;
j=gene_to_pheno(g,g_length);
cmaedu.com x=X1+(int)(j*f);
y=Y1+YR1-*(func+j)*YR1;
cmaedu.com g_line(x,y-10,x,y,15);
/* 适应度曲线的更新 */
cmaedu.com if(num!=1 num=XR2/STEP)
cmaedu.com if(num%10==0) /* 每隔10代更新一次 */
cmaedu.com x=X2+(num-1)*STEP;
cmaedu.com g_line(x,Y2+1,x,Y2+YR2-1,1);
sprintf(c,"%d",num);
cmaedu.com if(num100 || num%20==0)
cmaedu.com g_text(x-8,Y2+YR2,15,c);
x_old=X2+(num-1)*STEP;
x=x_old+STEP;
cmaedu.com y_old=Y2+YR2-(int)(m_f_old*YR2);
y=Y2+YR2-(int)(max_fit*YR2);
cmaedu.com g_line(x_old,y_old,x,y,11);
cmaedu.com y_old=Y2+YR2-(int)(a_f_old*YR2);
y=Y2+YR2-(int)(avg_fit*YR2);
g_line(x_old,y_old,x,y,9);
cmaedu.comvoid generation(gene,fitness,pop_size,g_length, c_rate,m_rate,new_gene,new_fitness,func,xmax)
/* 世代进化的模拟 */
cmaedu.comunsigned char *gene; /* 当前世代的个体遗传基因型 */
unsigned char *new_gene; /* 新一代的个体遗传基因型 */
cmaedu.comdouble *fitness; /* 当前世代的个体适应度 */
cmaedu.comdouble *new_fitness; /* 新一代的个体适应度 */
cmaedu.comdouble *func; /* 优化函数 */
cmaedu.comdouble c_rate,m_rate; /* 交叉概率和变异概率 */
cmaedu.comint pop_size, g_length; /* 种群大小与染色体长度 */
cmaedu.com{ int gen_max; /* 最大模拟世代数 */
cmaedu.com int i,j,k;
double max_fit,avg_fit; /* 当前代最大适应度和平均适应度 */
double m_f_old,a_f_old; /* 新一代最大适应度和平均适应度 */
char choice[3];
setcolor(15);
disp_hz16("输入最大模拟世代数:",10,1,20);
cmaedu.com gscanf(170,1,4,0,3,"%s",choice);
gen_max=atoi(choice);
cmaedu.com m_f_old=0.0;
a_f_old=0.0;
for(i=0;igen_max;i++)
if(i==gen_max-1)
cmaedu.com printf("\n");
printf("************Gen.%d*************\n",i+1);
calc_fitness(gene,fitness,pop_size,g_length,func,
cmaedu.com max_fit,avg_fit);
sga_reproduction(gene,fitness,new_gene,new_fitness,
pop_size,g_length);
cmaedu.com for(j=0;jpop_size;j++)
cmaedu.com *(fitness+j)=*(new_fitness+j);
cmaedu.com for(k=0;kg_length;k++)
*(gene+g_length*j+k)=*(new_gene+g_length*j+k);
cmaedu.com sga_crossover(gene,pop_size,g_length,c_rate);
cmaedu.com sga_mutation(gene,pop_size,g_length,m_rate);
g_plot_grph(i,gene,fitness,pop_size,g_length,func,
xmax,max_fit,m_f_old,avg_fit,a_f_old,gen_max);
cmaedu.com m_f_old=max_fit;
a_f_old=avg_fit;
cmaedu.commain() /* 主程序 */
cmaedu.com /*当前代的个体遗传基因型与新一代的个体遗传基因型 */
unsigned char gene[POP_SIZE][G_LENGTH], new_gene[POP_SIZE][G_LENGTH];
cmaedu.com /*当前代的个体适应度与新一代个体的适应度 */
cmaedu.com double fitness[POP_SIZE], new_fitness[POP_SIZE];
/* 优化函数 */
double func[XMAX+1];
/* 初始化图形设置 */
cmaedu.com g_init();
cmaedu.com /* 生成优化函数 */
make_function(func,XMAX);
cmaedu.com /* 初始化显示画面 */
g_init_grph(func,XMAX);
/* 初始化种群 */
initialize_gene(gene,POP_SIZE,G_LENGTH);
/* 世代进化模拟 */
cmaedu.com generation(gene,fitness,POP_SIZE,G_LENGTH,
cmaedu.com C_RATE,M_RATE,new_gene,new_fitness,func,XMAX);
cmaedu.com setcolor(9);
cmaedu.com disp_hz16("回车键结束",350,430,20);
getch();
小散工程和零星活工资拖欠怎么办? 小散工程和零星活工资拖欠怎么办?因为小散工程都没有签合同,都是口头约定工钱,干完活又不能马上结清工程款,这种情况还真不好办。只能找老板协商,约定结淸款的时间,并且有文...
元气骑士破解版不闪退 元气骑士破解版全无限3.0.1是一款含有rougelike元素的射击冒险游戏。每一次进入游戏,你的冒险关卡都会发生些微的变化,而在关卡中出现的武器以及buff也会不同,总是充满了...
世界末日生存 求修改存档方法 别介绍什么破解版什么的 我想找修改护甲 世界末日生存修改存档的办法只需要在百度搜索下载就可以了,世界末日生存是一款非常好玩的僵尸生存手游,玩家需要在游戏中想尽一切办法活下...
什么是破解版游戏 破解游戏,简单的说就是把收费的游戏破解为免费的,不花钱就玩正版游戏,把需要花钱的变成不需要花钱就可以玩,而有一些是把免费下载的游戏中的内购给破解掉。破解游戏分为两种方法:对于短信收费...
路痴和智商有没有关系 路痴是跟智商无关。实际上,路痴和智商没有关系。那是因为你不记路,而不是你记不住。确实,有的人没有方向感或者方向感差,缺少对方向感的掌握能力,就像恐高,恐高的人比起常人来,就是少了...
如何化解穿堂煞 如何化解穿堂煞 如何化解穿堂煞,在风水学上,最忌讳的风水就是穿堂煞,相信大家对于穿堂煞并没有太大的了解,到底穿堂煞是怎么样形成的?实际上我们有什么化解的办法呢?本文内容教大家如何化解...