给专科的同学辅导数学建模,名义上时辅导,其实都不会,顶多给他们搞搞基础的算法之类的,不过遇到了个坑爹的算法,他给我的公式我翻译成C语言(matlab,lingo都不太熟悉啊),写的内容如下:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp=fopen("data.txt","wb+");
int x11,x12,x13,x14,x15,x16,x17,x18,
x21,x22,x23,x24,x25,x26,x27,x28,
x31,x32,x33,x34,x35,x36,x37,x38,
x41,x42,x43,x44,x45,x46,x47,x48,
x51,x52,x53,x54,x55,x56,x57,x58,
x61,x62,x63,x64,x65,x66,x67,x68,
x71,x72,x73,x74,x75,x76,x77,x78,
x81,x82,x83,x84,x85,x86,x87,x88,
x91,x92,x93,x94,x95,x96,x97,x98,
x101,x102,x103,x104,x105,x106,x107,x108,
x111,x112,x113,x114,x115,x116,x117,x118,
x121,x122,x123,x124,x125,x126,x127,x128,
x131,x132,x133,x134,x135,x136,x137,x138,
x141,x142,x143,x144,x145,x146,x147,x148,
for(x11=0;x11<20;x11++)
for(x12=0;x12<20;x12++)
for(x13=0;x13<20;x13++)
for(x14=0;x14<20;x14++)
for(x15=0;x15<20;x15++)
for(x16=0;x16<20;x16++)
for(x17=0;x17<20;x17++)
for(x18=0;x18<20;x18++)
for(x21=0;x21<20;x21++)
for(x22=0;x22<20;x22++)
for(x23=0;x23<20;x23++)
for(x24=0;x24<20;x24++)
for(x25=0;x25<20;x25++)
for(x26=0;x26<20;x26++)
for(x27=0;x27<20;x27++)
for(x28=0;x28<20;x28++)
for(x31=0;x31<20;x31++)
for(x32=0;x32<20;x32++)
for(x33=0;x33<20;x33++)
for(x34=0;x34<20;x34++)
for(x35=0;x35<20;x35++)
for(x36=0;x36<20;x36++)
for(x37=0;x37<20;x37++)
for(x38=0;x38<20;x38++)
for(x41=0;x41<20;x41++)
for(x42=0;x42<20;x42++)
for(x43=0;x43<20;x43++)
for(x44=0;x44<20;x44++)
for(x45=0;x45<20;x45++)
for(x46=0;x46<20;x46++)
for(x47=0;x47<20;x47++)
for(x48=0;x48<20;x48++)
for(x51=0;x51<20;x51++)
for(x52=0;x52<20;x52++)
for(x53=0;x53<20;x53++)
for(x54=0;x54<20;x54++)
for(x55=0;x55<20;x55++)
for(x56=0;x56<20;x56++)
for(x57=0;x57<20;x57++)
for(x58=0;x58<20;x58++)
for(x61=0;x61<20;x61++)
for(x62=0;x62<20;x62++)
for(x63=0;x63<20;x63++)
for(x64=0;x64<20;x64++)
for(x65=0;x65<20;x65++)
for(x66=0;x66<20;x66++)
for(x67=0;x67<20;x67++)
for(x68=0;x68<20;x68++)
for(x71=0;x71<20;x71++)
for(x72=0;x72<20;x72++)
for(x73=0;x73<20;x73++)
for(x74=0;x74<20;x74++)
for(x75=0;x75<20;x75++)
for(x76=0;x76<20;x76++)
for(x77=0;x77<20;x77++)
for(x78=0;x78<20;x78++)
for(x81=0;x81<20;x81++)
for(x82=0;x82<20;x82++)
for(x83=0;x83<20;x83++)
for(x84=0;x84<20;x84++)
for(x85=0;x85<20;x85++)
for(x86=0;x86<20;x86++)
for(x87=0;x87<20;x87++)
for(x88=0;x88<20;x88++)
for(x91=0;x91<20;x91++)
for(x92=0;x92<20;x92++)
for(x93=0;x93<20;x93++)
for(x94=0;x94<20;x94++)
for(x95=0;x95<20;x95++)
for(x96=0;x96<20;x96++)
for(x97=0;x97<20;x97++)
for(x98=0;x98<20;x98++)
for(x101=0;x101<20;x101++)
for(x102=0;x102<20;x102++)
for(x103=0;x103<20;x103++)
for(x104=0;x104<20;x104++)
for(x105=0;x105<20;x105++)
for(x106=0;x106<20;x106++)
for(x107=0;x107<20;x107++)
for(x108=0;x108<20;x108++)
for(x111=0;x111<20;x111++)
for(x112=0;x112<20;x112++)
for(x113=0;x113<20;x113++)
for(x114=0;x114<20;x114++)
for(x115=0;x115<20;x115++)
for(x116=0;x116<20;x116++)
for(x117=0;x117<20;x117++)
for(x118=0;x118<20;x118++)
for(x121=0;x121<20;x121++)
for(x122=0;x122<20;x122++)
for(x123=0;x123<20;x123++)
for(x124=0;x124<20;x124++)
for(x125=0;x125<20;x125++)
for(x126=0;x126<20;x126++)
for(x127=0;x127<20;x127++)
for(x128=0;x128<20;x128++)
for(x131=0;x131<20;x131++)
for(x132=0;x132<20;x132++)
for(x133=0;x133<20;x133++)
for(x134=0;x134<20;x134++)
for(x135=0;x135<20;x135++)
for(x136=0;x136<20;x136++)
for(x137=0;x137<20;x137++)
for(x138=0;x138<20;x138++)
for(x141=0;x141<20;x141++)
for(x142=0;x142<20;x142++)
for(x143=0;x143<20;x143++)
for(x144=0;x144<20;x144++)
for(x145=0;x145<20;x145++)
for(x146=0;x146<20;x146++)
for(x147=0;x147<20;x147++)
for(x148=0;x148<20;x148++)
{
if(x11+x12+x13+x14+x15+x16+x17+x18==20 &&
x21+x22+x23+x24+x25+x26+x27+x28==20 &&
x31+x32+x33+x34+x35+x36+x37+x38==20 &&
x41+x42+x43+x44+x45+x46+x47+x48==20 &&
x51+x52+x53+x54+x55+x56+x57+x58==20 &&
x61+x62+x63+x64+x65+x66+x67+x68==20 &&
x71+x72+x73+x74+x75+x76+x77+x78==20 &&
x81+x82+x83+x84+x85+x86+x87+x88==20 &&
x91+x92+x93+x94+x95+x96+x97+x98==20 &&
x101+x102+x103+x104+x105+x160+x107+x108==20 &&
x111+x112+x113+x114+x115+x116+x117+x118==20 &&
x121+x122+x123+x124+x125+x126+x127+x128==20 &&
x131+x132+x133+x134+x135+x136+x137+x138==20 &&
x141+x142+x143+x144+x145+x146+x147+x148==20 &&
3*x11+3.5*x12+4*x13+4.5*x14+5*x15+5.5*x16+6*x17*6.5*x18 ==89 &&
3*x21+3.5*x22+4*x23+4.5*x24+5*x25+5.5*x26+6*x27*6.5*x28 ==89 &&
3*x31+3.5*x32+4*x33+4.5*x34+5*x35+5.5*x36+6*x37*6.5*x38 ==89 &&
3*x41+3.5*x42+4*x43+4.5*x44+5*x45+5.5*x46+6*x47*6.5*x48 ==89 &&
3*x51+3.5*x52+4*x53+4.5*x54+5*x55+5.5*x56+6*x57*6.5*x58 ==89 &&
3*x61+3.5*x62+4*x63+4.5*x64+5*x65+5.5*x66+6*x67*6.5*x68 ==89 &&
3*x71+3.5*x72+4*x73+4.5*x74+5*x75+5.5*x76+6*x77*6.5*x78 ==89 &&
3*x81+3.5*x82+4*x83+4.5*x84+5*x85+5.5*x86+6*x87*6.5*x88 ==89 &&
3*x91+3.5*x92+4*x93+4.5*x94+5*x95+5.5*x96+6*x97*6.5*x98 ==89 &&
3*x101+3.5*x102+4*x103+4.5*x104+5*x105+5.5*x106+6*x107*6.5*x108 ==89 &&
3*x111+3.5*x112+4*x113+4.5*x114+5*x115+5.5*x116+6*x117*6.5*x118 ==89 &&
3*x121+3.5*x122+4*x123+4.5*x124+5*x125+5.5*x126+6*x127*6.5*x128 ==89 &&
3*x131+3.5*x132+4*x133+4.5*x134+5*x135+5.5*x136+6*x137*6.5*x138 ==89 &&
3*x141+3.5*x142+4*x143+4.5*x144+5*x145+5.5*x146+6*x147*6.5*x148 ==89 &&
x11+x21+x31+x41+x51+x61+x71+x81+x91+x101+x111+x121+x131+x141 <= 43 &&
x12+x22+x32+x42+x52+x62+x72+x82+x92+x102+x112+x122+x132+x142 <= 59 &&
x13+x23+x33+x43+x53+x63+x73+x83+x93+x103+x113+x123+x133+x143 <= 39 &&
x14+x24+x34+x44+x54+x64+x74+x84+x94+x104+x114+x124+x134+x144 <= 41 &&
x15+x25+x35+x45+x55+x65+x75+x85+x95+x105+x115+x125+x135+x145 <= 27 &&
x16+x26+x36+x46+x56+x66+x76+x86+x96+x106+x116+x126+x136+x146 <= 28 &&
x17+x27+x37+x47+x57+x67+x77+x87+x97+x107+x117+x127+x137+x147 <= 34 &&
x18+x28+x38+x48+x58+x68+x78+x88+x98+x108+x118+x128+x138+x148 <= 21
)
{
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d\r\n",x11,x12,x13,x14,x15,x16,x17,x18);
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d\r\n",x21,x22,x23,x24,x25,x26,x27,x28);
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d\r\n",x31,x32,x33,x34,x35,x36,x37,x38);
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d\r\n",x41,x42,x43,x44,x45,x46,x47,x48);
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d\r\n",x51,x52,x53,x54,x55,x56,x57,x58);
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d\r\n",x61,x62,x63,x64,x65,x66,x67,x68);
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d\r\n",x71,x72,x73,x74,x75,x76,x77,x78);
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d\r\n",x81,x82,x83,x84,x85,x86,x87,x88);
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d\r\n",x91,x92,x93,x94,x95,x96,x97,x98);
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d\r\n",x101,x102,x103,x104,x105,x106,x107,x108);
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d\r\n",x111,x112,x113,x114,x115,x116,x117,x118);
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d\r\n",x121,x122,x123,x124,x125,x126,x127,x128);
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d\r\n",x131,x132,x133,x134,x135,x136,x137,x138);
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d\r\n",x141,x142,x143,x144,x145,x146,x147,x148);
fprintf(fp,"\r\n\r\n\r\n");
}
}
return 0;
}
这个程序足足运行到现在有51亿次了,至今无果,我很无语。初步算了下上面的循环,20的112次方是多大啊,5.1922968585348276285304963292201e+145是这个结果,和5.1e+10相差的有十倍了啊。。。
不知道在比赛结束前会不会有结果。。。。