c# - 如何为 TSP 生成随机坐标?
问题描述
我是编程新手,我必须生成一个随机游览。在第一步中,我必须生成一个尚未访问的随机索引。但是我不知道如何编写列表,这会给我随机坐标。
这是我到目前为止所拥有的:
class TSP
{
class Point //Class point that holds a x and y coordinate
{
public int X { get; set; }
public int Y { get; set; }
public Point(int x, int y)
{
X = x;
Y = y;
}
public Point() { }
public override string ToString()
{
return $"Point(X:{X}/Y:{Y})";
}
}
class City
{
public static Random rand = new Random();
public City(int x, int y)
{
X = rand.Next();
Y = rand.Next();
}
public double X { get; private set; }
public double Y { get; private set; }
public City () { }
public override string ToString()
{
return $"City(X: {X}/Y:{Y})";
}
}
static void Main(string[] args)
{
// takes the coordinates from my file
List<Point> points = new List<Point>();
string[] lines = File.ReadAllLines("C:/Users/t/Documents/Coordinates.txt");
for (int i = 6; i < lines.Length; i++)
{
string[] splitLine = lines[i].Split(' ');
int x = Convert.ToInt32(splitLine[1]);
int y = Convert.ToInt32(splitLine[2]);
points.Add(new Point(x, y));
}
foreach (Point p in points)
{
Console.WriteLine(p);
}
// Writes down the random coordinates for new Cites
List<City> cities = new List<City>();
for (int i = 3; i < lines.Length; i++)
{
string[] splitLine = lines[i].Split(' ');
int x = Convert.ToInt32(splitLine[1]);
int y = Convert.ToInt32(splitLine[2]);
points.Add(new Point(x, y));
cities.Add(new City(x, y));
}
foreach (City c in cities )
{
Console.WriteLine(c);
}
}
}
我认为我的问题出在主程序中(列表城市 = 新列表();) - 如果我是对的,它在 for 循环中,但我不知道如何以不同的方式写下来。
解决方案
推荐阅读
- export - 创建可运行的 jar 文件并使用 Extract required 和 Package required lib 获得差异结果
- css - 在 R Shiny 中扩大通知弹出窗口?
- node.js - 如何使用 NodeJS 从 POST 调用中获取 csv 文件
- node-gyp - 尝试配置构建时出现 node-gyp 错误
- c# - 如何在 Serilog 中使用带有 appSettings 的表达式模板
- c# - 正在处理 Android 自定义渲染器,但我不希望它是
- sql - 正确执行任务/查询一张表并将多行显示为一行pr标识符
- arduino - 在 If 命令中重复 If 命令
- jenkins - 如何以安全的方式将用户名和密码传递给 ANT?
- javascript - 倒数计时器有时会跳过显示秒数