当前位置: 首页 > 股票分析 >详情

精确重心法迭代(精确重心法excel)

#include“stdio.h”; main(){ int n,a[20],i,j,k; scanf(“%d”,n);我=0; j=n; while(j-- i lt; 20) { scanf(“%d%d”,a[i],a[i 1]); fflush(标准输入);我=2; j=0; while(j lt;=n) { for(i=a[j]; i lt;=a[j 1]; i ) { for(k=0; k lt; i; k ) { printf(quot;% dquot;i); } printf (“#92;n”); } j=2; }}

如果不初始化就用x0 y0,能不出错吗?

精确重心法迭代(精确重心法excel)

按照你的计算,结果应该是唯一的,对吧?

据我所知: 公式:x0=( xiwi )/( wi ) y0=( yiwi )/( wi ) 单设施位置模型有不同的名称,如:精确重心法、网格法和质心法等,由于选址因素只包括该点的运输率和货物运输量,所以这种方法比较简单。我们以从仓库点到各个目的地点的成本最低为考察目标:即:Min TC=ViRidi i 遍历所有目的地.(0) 其中:TC—— 总运输成本; Vi——i点运量; Ri—— 至i 点的运输费率; di——待处理仓库位置到i 点的距离。在坐标平面中,设待确定仓库的坐标为(X0,Y0) ViRiXi/di=SQR((X0-Xi)2 (Y0-Yi)2) .(3) 求解过程该方法:1、确定各目的地点的坐标,并确定各点的货物运输量和直线距离运费; 2. 不考虑距离因素,利用重心公式估算初始定位点: ViRiXiX0=…(4) ViRi ViRiYiY0…(5) ViRi 3. 根据式(3),利用步骤2中得到的(X0,Y0)计算di; 4、将di代入式(1)、(2)中,得到修正后的(X0,Y0)坐标; 5、根据修正后的(X0,Y0)坐标重新计算di; 6、重复步骤4和5,直到不断迭代过程中(X0,Y0)坐标不再变化或者变化在误差范围内; 7. 最后,如果需要,可以使用公式(0)计算最优位置的总成本。 #include lt;stdio.hgt;#include lt;math.hgt;struct xuanzhi{ double x,y,v,r;}xz[5]={{3,8,2000,0.050},{8,2, 3000,0.050},{2,5,2500,0.075},{6,4,1000,0.075},{8,8,1500,0.075}};main(){ struct xuanzhi;整数我;双d[5];双x0=0.0,y0=0.0,min=0.0,TC=0.0,t=0.0,m=0.0,w=0.0,x1=0.0,y1=0.0,m1=0.0,m2=0.0,w2=0.0,t1=0.0,m3=0.0,w3=0.0; for(i=0;ilt;5;i ) { m=xz[i].v*xz[i].r*xz[i].x; w=xz[i].v*xz[i].r; m1=xz[i].v*xz[i].r*xz[i].y; x0=m/w; y0=m1/w; for(i=0;ilt;5;i ) { d[i]=sqrt((xz[i].x-x0)*(xz[i].x-x0) (xz[i].y- y0 )*(xz[i].y-y0)); m3=xz[i].v*xz[i].r*xz[i].x/d[i]; t1=xz[i]。 v*xz[i].r*xz[i].y/d[i]; w3=xz[i].v*xz[i].r/d[i]; x1=m3/w3; y1=t1/w3;做{x0=x1; y0=y1; for(i=0;ilt;5;i ) { d[i]=sqrt((xz[i].x-x0)*(xz[i].x-x0) (xz[i].y-y0 )*(xz[i].y-y0)); m2=xz[i].v*xz[i].r*xz[i]. x/d[i]; t=xz[i].v*xz[i].r*xz[i].y/d[i]; w2=xz[i].v*xz[i].r /d[i]; x1=m2/w2; y1=t/w2; m2=0.0; t=0.0; w2=0.0; } while(fabs(x0-x1)-0.00000001gt;0fabs(y0-y1)-0.00000001gt;0); printf(“x0=lf,y0=lf#92;n”,x0,y0); for(i=0;ilt;5;i ) { d[i]=sqrt(( xz[i].x-x0)*(xz[i].x-x0) (xz[i].y-y0 )*(xz[i].y-y0));最小值=xz[i]。 v*xz[i].r*d[i]; TC=最小; } printf(“最小TC=lf#92;n”,TC); getch();}

#include lt;iostreamgt;#include lt;stdlib.hgt;#include lt;stringgt;使用命名空间std;class person{public:person(string i):name(i){};void personout(){coutlt;lt;name; };private:string name;};class Student: public person{public:student(string i,int j):person(i),no(j){};void stout(){coutlt;lt;no;};private:int no;};班主任: public person{public:teacher(string i,string j):person(i),title(j){};void tout(){coutlt;lt;title;};private:string title;};class S_Teacher: 公共教师,公共学生{};int main(){系统(“暂停”); }通过编译

为什么这个程序不能运行呢?~~~求帮助。

#include lt;iostream.hgt;#include lt;math.hgt;#include lt;stdlib.hgt;void main(){ int n;浮动*X,*Y,*V,*R; coutlt;lt;“请输入节点数:”; ct;gt;n; X=新浮点数[n]; Y=新浮点数[n]; V=新浮点数[n]; R=新浮点数[n]; coutlt ;lt;“请输入各节点的横坐标:”; for (int i=0;ilt;n;i ) cingt;gt;X[i]; coutlt;lt;quot;请输入各节点的纵坐标for (i=0;ilt;n;i ) cingt;gt;V[i]; coutlt;lt;“请输入各节点进出站运输费率:”;对于(i=0;ilt;n;i ) cingt;gt;R[i];浮点数sumx=0.0,sumy=0.0,sumqr=0.0;浮动avex,avey; for (i=0;ilt;n;i ) { sumx=V[i]*R[i]*X[i]; sumy=V[i]*R[i]*Y[i]; sumqr=V[i]*R[i]; } avex=sumx/sumqr; avey=sumy/sumqr; coutlt;lt;quot;初始仓库地址为:"lt;lt;quot;X=quot;lt;lt;avexlt;lt;#39; #39;lt;lt;quot;Y=quot;lt;lt ;aveylt;lt;endl; float *d; d=new float[i]; float xzsumx=0.0,xzsumy=0.0,xzsumqr=0.0; //xz 表示修改后的float xzavex,xzavey; int j=0 ; while (1 ) { for (i=0;ilt;n;i ) d[i]=sqrt((avex-X[i])*(avex-X[i]) (avey-Y[i]) *(avey- Y[i])); for (i=0;ilt;n;i ) { xzsumx=V[i]*R[i]*X[i]/d[i]; xzsumy=V[ i]*R [i]*Y[i]/d[i]; xzsumqr=V[i]*R[i]/d[i]; } xzavex=xzsumx/xzsumqr; xzavey=xzsumy/xzsumqr; if ( j==50 ) 中断; else { coutlt;lt;quot;j 1lt;lt;quot; 迭代: "lt;lt;quot;tempX="lt;lt;xzavexlt; lt;#39; #39;lt;lt;quot; tempY=quot;lt;lt;xzaveylt;lt;endl; avex=xzavex; avey=xzavey; xzsumx=0.0; xzsumy=0.0; xzsumqr=0.0; j ; } } coutlt;lt;quot;仓库最佳地址是: quot;lt;lt;quot;X=quot;lt;lt;xzavexlt;lt;#39; #39;lt;lt;quot;Y=quot; lt;lt;xzaveylt;lt;endl;} 来自:通过寻求帮助获得的答案

就是找出第一个假设。第一个是a,第二个是1,第三个是1 2.第七个是a 1 2. 6,总和是a (a 1) ( a 1 2) .(a 1 2. 6)=7*a 56=105a=7 程序应该可以出来

#include “stdafx.h”;#include “stdio.h”;int main(int argc, char* argv[]){ int haoma[7]; int i=0,j=0; int 标志=1;首先int=1,求和; while(flag) { haoma[0]=第一个; for(i=0,j=0;ilt;7;i ) { j ;好马[i 1]=好马[i] j;总和=0; for(i=0;ilt;7;i ) sum=sum haoma[i]; if(sum==105) { 标志=0; printf(“这七个数是:”); for(i=0;ilt;7;i ) printf(quot;%d , quot;haoma[i]); } if(haoma[6]gt;36) { 标志=0; printf(quot;没有这样的组合“”); } 第一的; }return 0;}已在VISUAL C环境下成功运行。第一个数字是7。我不知道它是否可以在TC环境中运行。

#include lt;iostreamgt;#include lt;stringgt;using 命名空间std;class Person{public:Person(){name=quot;quot;}Person(string n){name=n;}~Person(){}virtual void print(){}protected:string name;};class Student:virtual public Person{public:Student(){name=no=quot;quot;}Student(string name,string no){this-gt;name=name;this-gt; no=no;}~Student(){}void print(){coutlt;lt;quot;学生quot;lt;lt;nolt;lt;quot;quot;lt;lt;namelt;lt;endl;}protected:string no ;};class Teacher:虚拟公共Person{public:Teacher(){name=title=quot;quot;}Teacher(string name,string title){this-gt;name=name;this-gt;title=title;}~Teacher (){}void print(){coutlt;lt;quot;老师quot;lt;lt;namelt;lt;quot;quot;lt;lt;titlelt;lt;endl;}protected:string title;};class S_Teacher:public Student,公共教师{public:S_Teacher(){name=no=title=quot;quot;}S_Teacher(字符串名称,字符串编号,字符串标题){this-gt;name=name;this-gt;no=no;this-gt ;title=title;}~S_Teacher(){}void print(){coutlt;lt;quot;S_Teacher quot;lt;lt;namelt;lt;quot;quot;lt;lt;nolt;lt;quot;quot ;lt;lt;titlelt;lt;endl;}};void main(){学生a(“Tom”,“12345”);老师b(“Lucy”,“Pro”);S_老师c( ``李雷','9999','屁股');a.print();b.print();c.print();}

看起来像线性规划?如果你还没有学过重心法,就站着学吧。

相关资讯