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
原创粉丝点击