资源

三维零和十字(mpex17)

/***************************************************************//*                                                             *//*S A S S A M P L E L I B R A R Y*//*                                                             *//*名称:mpex17*//*标题:三维零和十字(mpex17)*//*产品:或*//*系统:所有*//*程序:OPTMODEL*//*数据:*//*                                                             *//*支持:更新:*//*参考编号:*//*MISC:数学编程示例17*//*示例手册*//*                                                             *//***************************************************************/数据color_data;输入num_balls;数据线;1314;%设n=3;过程操作模型;num n=&n;设置CELLS=1..n交叉1..n交1..n;设置颜色;num num_balls{颜色};将数据color_data读入COLORS=[_N_]num_balls;var IsColor{CELLS,COLORS}二进制;单元格}中的con IsColor_con{<i,j,k>:和{COLORS}IsColor[i,j,k,color]=1;con Num_balls_con{颜色}:单元格}IsColor[i,j,k,color]=num_balls[color]中的和{<i,j、k>;num num_lines初始化0;设置LINES=1..num_LINES;var IsMonocoloric{LINES}二进制;最小单色线数=和{线中的线}IsMonocolorar[line];设置CELLS_line{LINES};对于{i在1..n中,j在1..n}do;num_lines=num_line+1;CELLS_line[num_lines]=1中{k的集合..n}<i,j,k>;结束;对于{i在1..n中,k在1..n}do中;num_lines=num_line+1;CELLS_line[num_lines]=1中{j的集合..n}<i,j,k>;结束;对于1..n中的{j,1..n}do中的k;num_lines=num_line+1;CELLS_line[num_lines]=1中{i的集合..n}<i,j,k>;结束;对于{i in 1..n}do;num_lines=num_line+1;CELLS_line[num_lines]=1中{j的集合..n}<i,j,j>;num_lines=num_line+1;CELLS_line[num_lines]=1中{j的集合..n}<i,j,n+1-j>;结束;对于1..n}do中的{j;num_lines=num_lines+1;CELLS_line[num_lines]=1中{i的集合..n}<i,j,i>;num_lines=num_line+1;CELLS_line[num_lines]=1中{i的集合..n}<i,j,n+1-i>;结束;对于{k in 1..n}do;num_lines=num_line+1;CELLS_line[num_lines]=1中{i的集合..n}<i,i,k>;num_lines=num_lines+1;CELLS_line[num_lines]=1中{i的集合..n}<i,n+1-i,k>;结束;num_lines=num_line+1;CELLS_line[num_lines]=1中{t的集合..n}<t,t,t>;num_lines=num_line+1;CELLS_line[num_lines]=1中{t的集合..n}<t,t,n+1-t>;num_lines=num_line+1;CELLS_line[num_lines]=1中{t的集合..n}<t,n+1-t,t>;num_lines=num_line+1;CELLS_line[num_lines]={t在1..n}<t,n+1-t,n+1.t>中的集合;放置num_lines=;put(((n+2)^3-n^3)/2)=;con Link_con{LINES中的line,COLORS}中的color:CELLS_line[line]}IsColor[i,j,k,color]中的和{-卡(CELLS_line[line])+1<=Is单色[线];解决;num assigned_color{细胞};对于单元格}中的{i,j,k>do;对于颜色中的{color:IsColor[i,j,k,color].sol>0.5}do;assigned_color[i,j,k]=颜色;离开;结束;结束;对于1..n}中的{i打印{j in 1..n,k in 1..n}赋值颜色[i,j,k];对于{LINES中的line:IsMonocoloral[line].sol>0.5}放置CELLS_line[line]=;文件打印;对于{行中的行:IsMonocolor[line].sol>0.5}放置CELLS_line[line]=;退出;