C# 很抱歉,我无法理解您的想法:)。你的意思是什么顺序?由随机类或集合创建的数字的保留顺序应具有项的升序?无论您认为有用的顺序是什么,HashSet的问题是它没有定义任何顺序,因此它可能不是由Random生成的原始序列随机分布的数字。如果您澄清了代码提供的项目
C# 很抱歉,我无法理解您的想法:)。你的意思是什么顺序?由随机类或集合创建的数字的保留顺序应具有项的升序?无论您认为有用的顺序是什么,HashSet的问题是它没有定义任何顺序,因此它可能不是由Random生成的原始序列随机分布的数字。如果您澄清了代码提供的项目,c#,recursion,random,C#,Recursion,Random,很抱歉,我无法理解您的想法:)。你的意思是什么顺序?由随机类或集合创建的数字的保留顺序应具有项的升序?无论您认为有用的顺序是什么,HashSet的问题是它没有定义任何顺序,因此它可能不是由Random生成的原始序列随机分布的数字。如果您澄清了代码提供的项目顺序(或指定“结果只是从范围中随机选取的一组数字”),这将足以成为合理的答案。我个人认为数字应该是由Random生成的(至少OP的代码已经尝试过了)。 static Random randomObject = new Random();
很抱歉,我无法理解您的想法:)。你的意思是什么顺序?由随机类或集合创建的数字的保留顺序应具有项的升序?无论您认为有用的顺序是什么,
HashSet
的问题是它没有定义任何顺序,因此它可能不是由Random
生成的原始序列随机分布的数字。如果您澄清了代码提供的项目顺序(或指定“结果只是从范围中随机选取的一组数字”),这将足以成为合理的答案。我个人认为数字应该是由Random
生成的(至少OP的代码已经尝试过了)。
static Random randomObject = new Random();
static void Main(string[] args)
{
long[] randomArr = new long[5];
for (int i = 0; i < randomArr.Length; i++ )
{
if (randomArr[i] == randomArr[0])
{
randomArr[i] = randomObject.Next(1, 11);
}
else
{
long check = randomObject.Next(1, 11);
randomArr[i] = CheckIfUnique(check, randomArr);
}
}
Console.WriteLine("\nPress the [enter] key to continue...");
Console.ReadLine();
}
static long CheckIfUnique(long a, long[] b)
{
for (int i = 0; i <= b.GetUpperBound(0); i++)
{
if (a == b[i])
{
a = randomObject.Next(1, 11);
CheckIfUnique(a, b);
}
}
return a;
}
static Random randomObject = new Random();
static void Main(string[] args)
{
long[] randomArr = new long[5];
for (int i = 0; i < randomArr.Length;)
{
long t = randomObject.Next(1, 11);
if(CheckIfUnique(t, randomArr, i))
{
randomArr[i++] = t;
}
}
}
static bool CheckIfUnique(long a, long[] b, int length)
{
for (int i = 0; i < length; i++)
{
if (a == b[i])
{
return false
}
}
return true;
}
HashSet<int> origNumbers = new HashSet<int>();
Random rnd=new Random();
do
{
int k = rnd.Next(10);
origNumbers.Add(k);
}
while (origNumbers.Count <5);
SortedSet<int> origNumbers = new SortedSet<int>();
Random rnd=new Random();
do
{
int k = rnd.Next(10);
origNumbers.Add(k);
}
while (origNumbers.Count <5);
var random = new System.Random(Guid.NewGuid().GetHashCode());
var values = Enumerable.Range(0, 10).OrderBy(x => random.Next()).Take(5).ToArray();
static Random randomObject = new Random();
static void Main(string[] args)
{
int MAX_NUMBER = 10;
int MIN_NUMBER = 1;
int NUMBER_OF_RESULTS_REQUIRED = 5;
long[] randomArr = new long[NUMBER_OF_RESULTS_REQUIRED];
//Use a pool of all possible values
List<long> dataSet = new List<long>();
for (int i = MIN_NUMBER; i <= MAX_NUMBER; ++i)
{
dataSet.Add(i);
}
for (int i = 0; i < NUMBER_OF_RESULTS_REQUIRED; ++i)
{
int t = randomObject.Next(0, dataSet.Count);
randomArr[i] = dataSet[t];
dataSet.RemoveAt(t);
}
for (int i = 0; i < randomArr.Length; ++i)
{
Console.WriteLine(randomArr[i]);
}
Console.ReadKey();
}