分配随机数c#

分配随机数c#,c#,C#,我试图做的是检索随机的“x”和“y”值,将它们分配给我的每个陷阱。我已经学会了如何获取特定范围内的随机数,但是我尝试了各种方法来检索第一个随机xvalue和yvalue来分配它们,但是我收到了“System.random” 编辑:谢谢大家的回答和帮助,但我仍然不清楚如何获得随机值并分配它们。我想做的是,如果我把3作为陷阱的数量,程序会给出6个值,3代表x坐标,3代表y坐标,我很难弄清楚我是如何得到它们的。例如,x的RNG值为(4,7,1),y值为(8,1,6)。我试图使它,使trap1将有值(4

我试图做的是检索随机的“x”和“y”值,将它们分配给我的每个陷阱。我已经学会了如何获取特定范围内的随机数,但是我尝试了各种方法来检索第一个随机xvalue和yvalue来分配它们,但是我收到了“System.random”

编辑:谢谢大家的回答和帮助,但我仍然不清楚如何获得随机值并分配它们。我想做的是,如果我把3作为陷阱的数量,程序会给出6个值,3代表x坐标,3代表y坐标,我很难弄清楚我是如何得到它们的。例如,x的RNG值为(4,7,1),y值为(8,1,6)。我试图使它,使trap1将有值(4,8)分配给它trap2(7,1)和trap3(1,6)。任何指导或提示都会有所帮助

    Console.WriteLine ("Please enter the number of traps.");

    Random rndX = new Random ();
    Random rndY = new Random ();
    int traps;

    traps = Convert.ToInt32 (Console.ReadLine ());
    Console.WriteLine ("X coordinates for the traps", traps);

    for (int X = 1; X <= traps; X++) 
    {
        Console.Write ("{0}", rndX.Next (1, 11)); 
        Console.WriteLine ();
    }

    Console.WriteLine ("Y coordinates for the traps");
    for (int Y = 1; Y <= traps; Y++) 
    {
        Console.Write ("{0}", rndY.Next (1, 11));
        Console.WriteLine ();
    }
谢谢你看了这个:D
如果有任何关于我应该如何做的提示或指南,我们将不胜感激

您必须像在代码的另一部分中那样调用
Next()
方法


最后一行代码隐式地调用
Random
类的实例上的
ToString()
,该类输出类类型(
“System.Random”


最后一行代码隐式地调用
Random
类的实例上的
ToString()
,该类输出类类型(
“System.Random”


最后一行代码隐式地调用
Random
类的实例上的
ToString()
,该类输出类类型(
“System.Random”


最后一行代码隐式地调用
Random
类的实例上的
ToString()
,该类输出类类型(
“System.Random”
)。

这是错误的,它调用Random类上的ToString()方法,从而输出
System.Random

Console.WriteLine ("{0,0}",rndX, rndY);
您需要使用
{0}
{1}
为第一个和第二个值正确地索引这些值

Console.WriteLine ("{0}, {1}",rndX.Next(1, 11), rndY.Next(1, 11));

这是错误的,它对random类调用ToString()方法,因此输出
System.random

Console.WriteLine ("{0,0}",rndX, rndY);
您需要使用
{0}
{1}
为第一个和第二个值正确地索引这些值

Console.WriteLine ("{0}, {1}",rndX.Next(1, 11), rndY.Next(1, 11));

这是错误的,它对random类调用ToString()方法,因此输出
System.random

Console.WriteLine ("{0,0}",rndX, rndY);
您需要使用
{0}
{1}
为第一个和第二个值正确地索引这些值

Console.WriteLine ("{0}, {1}",rndX.Next(1, 11), rndY.Next(1, 11));

这是错误的,它对random类调用ToString()方法,因此输出
System.random

Console.WriteLine ("{0,0}",rndX, rndY);
您需要使用
{0}
{1}
为第一个和第二个值正确地索引这些值

Console.WriteLine ("{0}, {1}",rndX.Next(1, 11), rndY.Next(1, 11));
试试这个

Console.WriteLine ("{0},{1}",rndX.Next(), rndY.Next());
试试这个

Console.WriteLine ("{0},{1}",rndX.Next(), rndY.Next());
试试这个

Console.WriteLine ("{0},{1}",rndX.Next(), rndY.Next());
试试这个

Console.WriteLine ("{0},{1}",rndX.Next(), rndY.Next());

一旦使用了这些值,除非保存它们,否则它们将被丢弃

Console.WriteLine ("Please enter the number of traps.");

Random rnd = new Random ();
int traps;

traps = Convert.ToInt32 (Console.ReadLine ());
Console.WriteLine ("X coordinates for the traps", traps);

for (int X = 1; X <= traps; X++) 
{
    int rx = rnd.Next (1, 11);
    Console.Write ("{0}", rx); 
    Console.WriteLine ();
}

Console.WriteLine ("Y coordinates for the traps");
for (int Y = 1; Y <= traps; Y++) 
{
    int ry = rnd.Next (1, 11);
    Console.Write ("{0}", ry); 
    Console.WriteLine ();
}
Console.WriteLine(“请输入陷阱数”);
Random rnd=新的Random();
内部陷阱;
traps=Convert.ToInt32(Console.ReadLine());
Console.WriteLine(“陷阱的X坐标”,陷阱);

对于(int X=1;X,一旦使用了这些值,除非您保存它们,否则它们将被丢弃

Console.WriteLine ("Please enter the number of traps.");

Random rnd = new Random ();
int traps;

traps = Convert.ToInt32 (Console.ReadLine ());
Console.WriteLine ("X coordinates for the traps", traps);

for (int X = 1; X <= traps; X++) 
{
    int rx = rnd.Next (1, 11);
    Console.Write ("{0}", rx); 
    Console.WriteLine ();
}

Console.WriteLine ("Y coordinates for the traps");
for (int Y = 1; Y <= traps; Y++) 
{
    int ry = rnd.Next (1, 11);
    Console.Write ("{0}", ry); 
    Console.WriteLine ();
}
Console.WriteLine(“请输入陷阱数”);
Random rnd=新的Random();
内部陷阱;
traps=Convert.ToInt32(Console.ReadLine());
Console.WriteLine(“陷阱的X坐标”,陷阱);

对于(int X=1;X,一旦使用了这些值,除非您保存它们,否则它们将被丢弃

Console.WriteLine ("Please enter the number of traps.");

Random rnd = new Random ();
int traps;

traps = Convert.ToInt32 (Console.ReadLine ());
Console.WriteLine ("X coordinates for the traps", traps);

for (int X = 1; X <= traps; X++) 
{
    int rx = rnd.Next (1, 11);
    Console.Write ("{0}", rx); 
    Console.WriteLine ();
}

Console.WriteLine ("Y coordinates for the traps");
for (int Y = 1; Y <= traps; Y++) 
{
    int ry = rnd.Next (1, 11);
    Console.Write ("{0}", ry); 
    Console.WriteLine ();
}
Console.WriteLine(“请输入陷阱数”);
Random rnd=新的Random();
内部陷阱;
traps=Convert.ToInt32(Console.ReadLine());
Console.WriteLine(“陷阱的X坐标”,陷阱);

对于(int X=1;X,一旦使用了这些值,除非您保存它们,否则它们将被丢弃

Console.WriteLine ("Please enter the number of traps.");

Random rnd = new Random ();
int traps;

traps = Convert.ToInt32 (Console.ReadLine ());
Console.WriteLine ("X coordinates for the traps", traps);

for (int X = 1; X <= traps; X++) 
{
    int rx = rnd.Next (1, 11);
    Console.Write ("{0}", rx); 
    Console.WriteLine ();
}

Console.WriteLine ("Y coordinates for the traps");
for (int Y = 1; Y <= traps; Y++) 
{
    int ry = rnd.Next (1, 11);
    Console.Write ("{0}", ry); 
    Console.WriteLine ();
}
Console.WriteLine(“请输入陷阱数”);
Random rnd=新的Random();
内部陷阱;
traps=Convert.ToInt32(Console.ReadLine());
Console.WriteLine(“陷阱的X坐标”,陷阱);

对于(int X=1;X您需要使用同一个随机数生成器,C#中的RNG是一个被破坏的算法,并且还使用时间戳种子作为默认值来实现,因此很容易实现以下两种情况:

rndX.Next()
rndY.Next()
将返回相同的数字,因为由于指令太快,它们都是使用相同的时间戳创建的。请改为调用相同的RNG两次,并使用数组索引选择一个值,如下所示:

var arrX= new int[] {1,2,3};
var arrY = new int[] { 6,7,8};
Console.WriteLine ("{0},{1}",arrX[rndX.Next(3)], arrY[rndX.Next(3))];

您需要使用相同的随机数生成器,C#中的RNG是一种被破坏的算法,并且还使用时间戳种子作为默认值来实现,因此很容易实现以下两种情况:

rndX.Next()
rndY.Next()
将返回相同的数字,因为由于指令太快,它们都是使用相同的时间戳创建的。请改为调用相同的RNG两次,并使用数组索引选择一个值,如下所示:

var arrX= new int[] {1,2,3};
var arrY = new int[] { 6,7,8};
Console.WriteLine ("{0},{1}",arrX[rndX.Next(3)], arrY[rndX.Next(3))];

您需要使用相同的随机数生成器,C#中的RNG是一种被破坏的算法,并且还使用时间戳种子作为默认值来实现,因此很容易实现以下两种情况:

rndX.Next()
rndY.Next()
将返回相同的数字,因为由于指令太快,它们都是使用相同的时间戳创建的。请改为调用相同的RNG两次,并使用数组索引选择一个值,如下所示:

var arrX= new int[] {1,2,3};
var arrY = new int[] { 6,7,8};
Console.WriteLine ("{0},{1}",arrX[rndX.Next(3)], arrY[rndX.Next(3))];

您需要使用相同的随机数生成器,C#中的RNG是一种被破坏的算法,并且还使用时间戳种子作为默认值来实现,因此很容易实现以下两种情况:

rndX.Next()
rndY.Next()
将返回相同的数字,因为由于指令太快,它们都是使用相同的时间戳创建的。请改为调用相同的RNG两次,并使用数组索引选择一个值,如下所示:

var arrX= new int[] {1,2,3};
var arrY = new int[] { 6,7,8};
Console.WriteLine ("{0},{1}",arrX[rndX.Next(3)], arrY[rndX.Next(3))];