求助:如何让方法判断最优解?比如开车从A-B地.可能有10条路,每条路的公里数不一样,路上可能还有路障之类的,
比如A--C--B
A--D--B
A--E--B
每次运行这个方法的时候都不一样,比如这一次运行时,C地可能有路障,通过时间更长之类的,所以这个时候方法把这路条的评分降低.
每次这个方法的结果都不一样,
是否让方法在运行时自己先默认运行这10条路的可能性,然后给出每一条路的评分.
最后方法选择最高的分数的路.这个是要怎么做到?我是刚学半年的新手.可能有些奇怪,求大佬解答
比如A--C--B
A--D--B
A--E--B
每次运行这个方法的时候都不一样,比如这一次运行时,C地可能有路障,通过时间更长之类的,所以这个时候方法把这路条的评分降低.
每次这个方法的结果都不一样,
是否让方法在运行时自己先默认运行这10条路的可能性,然后给出每一条路的评分.
最后方法选择最高的分数的路.这个是要怎么做到?我是刚学半年的新手.可能有些奇怪,求大佬解答
假设你的评分依据是:路程长×比例系数,可以类似这样写/// <summary>
///
/// </summary>class scores
{
class roadCondition
{
public string roadName;
public double roadLength;
public double scale; //受阻系数
public roadCondition(string p_name,double p_roadLength,double p_scale)
{
roadName = p_name;
roadLength = p_roadLength;
scale = p_scale; }
} private List<roadCondition> roadList; public void addRoad(string p_name,double p_roadLength, double p_scale)
{
if(roadList==null)
{
roadList = new List<roadCondition>();
}
roadList.Add(new roadCondition(p_name,p_roadLength,p_scale)); } public void clearRoad()
{
if(roadList!=null)
{
roadList.Clear();
}
} public string getBestRoad()
{
return roadList.OrderByDescending(r => r.roadLength * r.scale).FirstOrDefault().roadName;
}
}//计算
scores theScore = new scores();
theScore.addRoad("c", 100, 0.1);
theScore.addRoad("d", 120, 0.08);
theScore.addRoad("e", 80, 0.15);Response.Write(theScore.getBestRoad() + "<br />"); web下输出e,最佳是e路径