シンプルなデュアルマシンスケジューラ設計


文書ディレクトリ
  • 前言
  • 一、問題の出所
  • 1.Webサイトhttps://www.icourse163.org/learn/PKU-1002525003?tid=1450408483#/learn/content?type=detail&id=1214976908&cid=1219230238&replay=true

  • 二、計算プログラム
  • 2.出力結果
  • まとめ
  • 前言
    アルゴリズムのデュアルマシンスケジューリングの問題を知っていますか?c言語を勉強したばかりでアルゴリズムの授業を独学している学者として、ダブルクリックスケジューリングの問題を解決するためにどのようにプログラミングするつもりですか?
    一、問題の出所
    中国大学MOOCにおける北京大学アルゴリズム課程
    1.ウェブサイトhttps://www.icourse163.org/learn/PKU-1002525003?tid=1450408483#/learn/content?type=detail&id=1214976908&cid=1219230238&replay=true
    二、計算プログラム
    コードは以下の通りである:#include int main(){int a=0,c=1;//a回数を制御するためのcを用いてint time=0,timeF=0,min=0,timeA=0,timeB=0をランダムに変更し、//変数記録スケジュールの時間を設定し、1つの場合に最大の時間(つまり合計完了時間)を記録する int s1=1,s2=2,s3=3,s4=6,s5=7,s6=10;//複数のs変数が各タスクを表し、数値が時間を表すように設定します.
    for(;a<=100000000;)//     (    ,  goto   )           (“  ”  )
    {
    	timeA=s1+s2+s3;//timA timeB      **
    	timeB=s4+s5+s6;
    	if(timeA>timeB)time=timeA;
    	else time=timeB; //      
    
    	if(c%3==0){s1=s1+s4,s4=s1-s4,s1=s1-s4;}//       s    ,      (  timA timeB      )
    	else if(c%4==0){s2=s2+s5,s5=s2-s5,s2=s2-s5;}//                ,       4,5,6,7。
    	else if(c%5==0){s3=s3+s6,s6=s3-s6,s3=s3-s6;}
    	else if(c%6==0){s4=s4+s5,s5=s4-s5,s4=s4-s5;}
    	else if(c%7==0){s5=s5+s6,s6=s5-s6,s5=s5-s6;}
    	if(time

    2.出力結果
    6 3 10 1 2 7(最後のケースのみを表し、プログラム注釈で述べたように、ここでは正しくない)15平均数を求めることで、答えが正しいことがわかります(14.5と15は非常に近い).(状況をチェックするにはif文で正解15として出力する場合の組み合わせ)
    まとめ
    このランダムな変更を大量に計算してすべての状況を組み合わせる方法は経路かもしれないが、少なくとも初心者の私には.本文は初心者のプログラミングにideaを提供して、それは完璧ではないかもしれませんが、良い試みになります.