我需要生成1000个随机数作为[x,y]坐标。 x的最大值是76,而y的最大值是15。我还制作了Point 2D类,该类应读取X和Y坐标并执行一些数学方程式(该类称为Punkt2D,并且使用X和Y表示距离.X和distance.Y来计算)。
现在我只能得到0到75之间的1000个随机数。如何将其转换为坐标值?
(kolonner是指列,rade mens行和nummer mens号)。
public const int MaxX = 76;
public const int MaxY = 15;
public const int min = 0;
public const int rader = 1000;
public const int kolonner = 2;
public static void Main(string[] args)
{
Random r = new Random();
int[,] nummer = new int[kolonner,rader];
for (int m = 0; m < kolonner; m++)
{
for (int n = 0; n < 1000; n++)
{
nummer[m,n] = r.Next(0,MaxX);
Console.WriteLine(Convert.ToString(nummer[m, n]));
}
}
}
我也从这里开始,从这里删除了循环。
int row = r.Next(nummer.GetLength(0));
int column = r.Next(nummer.GetLength(1));
int randomNummer = nummer[row, column];
Console.WriteLine(Convert.ToString(nummer));
谢谢。
答案 0 :(得分:0)
我看到了两种生成随机点的方法。假设范围为x = {0..M-1}
和y = {0..N-1}
创建两个单独的随机数int x = random.Next(M); int y = random.Next(N)
。下限为0
。请注意,上限是互斥的。因此,M
和N
必须比最大值高1。它们代表沿一个轴的可能值的数量(图像中的像素数量)。
const int M = 77, Y = 16; // Gives range of { 0..76, 0..15 }.
生成一个随机值int r = random.Next(M * N);
,然后使用int x = r % M; int y = r / M;
获取坐标(%
是产生除法运算余数的模运算符)。
您可以通过以下方式获得要点:
var p = new Point(x, y);