hfg
来源:互联网 发布:梯度下降算法 权重 编辑:程序博客网 时间:2024/06/09 22:58
第一问伪代码:main()/*----------------------------------------------启动函数--------------------------------------*/{ 启动Doctor函数,传入参数n==0; for(q=1;q<iCount;q++){ if(max<=b[q]) { max=b[q]; j=q+1; } EDN FOR} void Doctor(int n) /*---------------------------------主要分配函数---------------------------------*/{ int i; if(n == DOCTOR) //----------------------------------------判断n是否等于5,如果等于5,则调用输出函数,否则进入for循环 { Output(); return; } for(i = 0 ; i < DOCTOR ; i++) //--------------------------n还没到5,在第n行的各个行上依次试探。 { Site[n] = i; //-------------------------------------记录列数。 if(IsValid(n)) //-------------------------------如果记录没有冲突,就开始下一行的试探。 Doctor(n + 1);//--------------------------------递归调用Doctor()函数,使形式参数每次调用加一 } } int IsValid(int n) /*----------------------------------主要判断函数---------------------------------*/{ int i; for(i = 0 ; i < n ; i++) //--------------------------------判断数组元素是否在同一列上,如果是,返回0 { if(Site[i] == Site[n]) return 0; } return 1; //------------------------------------------------没有冲突,返回1。 } void Output()/*----------------------------------------主要输出函数-----------------------------------*/{ 输出方案序号。 for(i = 0 ; i < DOCTOR ; i++)//--------------------------依次输出各个方案的位置。 { printf("%c " , project[Site[i]]); sum+=a[i][Site[i]];//---------------------------计算每个方案的结果。 b[p]=sum;//---------------------------------储存sum到b数组。 } END for p++;//-------------------------------------------------------每递归一次储存数组加一。 输出每个方案的满意度。}
0 0