資源簡介
實驗目的:通過實驗理解算法的概念、算法的表示、算法的時間復雜度和空間復雜度分析;運用熟悉的編程工具對碼頭擴建問題進行求解,初步學會分析算法的時間復雜度
某市有一碼頭,每次僅容一輛船停泊裝卸貨,由于經常有船等候進港,部分人提出要擴建碼頭。經過調查歷史資料發現,碼頭平均每月停船24艘,每艘船的停泊時間為24±20小時,相鄰兩艘船的到達時間間隔為30±15小時,如果一艘船因有船在港而等候1小時,其消耗成本為1000元。經預算,擴建碼頭大約需要1350萬元,故市長決策如下:如果未來五年內停泊船只因等候的成本消耗總和超過擴建碼頭花費則擴建碼頭,否則,不予擴建。因此,希望你能夠幫助市長做出決策。此問題已知到達的大概時間和大概停泊時間,對于此問題用概率統計的方法來做比較復雜,可用程序隨機產生到達時間和停泊時間來模擬未來五年內船的停泊,多次模擬預測停泊情況,以做出決策;
3.實驗要求:編制程序并對其時間復雜度和空間復雜度進行分析;
代碼片段和文件信息
#include?“stdafx.h“
#include
#include
#include
using?namespace?std;
#include?
#define?year?5
#define?test?100
int?remaintime;
int?reach;
int?leave;
int?s?=?0;
double?money?=?13500000;
int?sx?=?0;
int?Random(int?m?int?n)//mn分別為負向隨機和正向隨機
{
int?pos?dis;
if?(m?==?n)//m=n不叫隨機數,返回m
{
return?m;
}
else?if?(m?>?n)//??標記pos=n,距離差pos=m-n+1,返回?rand()?%?dis?+?pos
{
pos?=?n;
dis?=?m?-?n?+?1;
return?rand()?%?dis?+?pos;
}
else
{
pos?=?m;//標記pos=m,距離差=n-m+1,返回rand()?%?dis?+?pos
dis?=?n?-?m?+?1;
return?rand()?%?dis?+?pos;
}
}
int?main()
{
srand((int)time(NULL));
int?leave?=?0;
remaintime?=?24?+?Random(-20?20);//定義停泊時間
reach?=0;//第一艘船到達時間為0
leave?=?remaintime;//第一艘船離開時間為停留時間
reach?=?30?+?Random
評論
共有 條評論