int[] numbers = new int[20]; Random random = new Random(); for (int i = 0; i < 16; i++) numbers[i] = random.Next(1, 51); for (int i = 16; i < 20; i++) numbers[i] = random.Next(51, 101);
public void GetRandomArray(int index)//index 是你需要的数据的长度.也就是你这里的5. { int index; int[] arr = new int[index] { }; Random random = new Random(); for (int i = 1; i <= index; i++) { for (int j = 0; j < i; j++) { if (random.Next(index).CompareTo(arr[j]) == 0) continue; else arr[i] = random.Next(index); } } }
向gogogo 学习,能不能提供一段代码供大家参考呢。谢谢
中学学的公式曲线是凹陷的很多,我随便来个,只适合这个题目,我用的x平方,保证总数100个数字,其他的自己弄 int[] num = new int[20]; int[] numbers = new int[100]; int nIndex; Random random = new Random();//初始化numbers的100个数据 for (int i = 0; i < 20; i++) { nIndex = random.Next(1, 100); nIndex = nIndex * nIndex / 100; //如果用x的3次方就是nIndex=nIndex*nIndex*nIndex/10000,数字超范围自己研究下,这里不管了 num[i] = numbers[nIndex -1]; }这个不能保证取到的数字不重复,如果要求不重复,可以把这段代码只作为取随机数的部分,不重复代码部分可以研究其他人的相关例子。
int[] numbers = new int[20];
Random random = new Random(); for (int i = 0; i < 16; i++) numbers[i] = random.Next(1, 51);
for (int i = 16; i < 20; i++) numbers[i] = random.Next(51, 101);
{
int index;
int[] arr = new int[index] { };
Random random = new Random();
for (int i = 1; i <= index; i++)
{
for (int j = 0; j < i; j++)
{
if (random.Next(index).CompareTo(arr[j]) == 0)
continue;
else
arr[i] = random.Next(index);
}
}
}
int[] num = new int[20];
int[] numbers = new int[100];
int nIndex;
Random random = new Random();//初始化numbers的100个数据
for (int i = 0; i < 20; i++)
{
nIndex = random.Next(1, 100);
nIndex = nIndex * nIndex / 100; //如果用x的3次方就是nIndex=nIndex*nIndex*nIndex/10000,数字超范围自己研究下,这里不管了
num[i] = numbers[nIndex -1];
}这个不能保证取到的数字不重复,如果要求不重复,可以把这段代码只作为取随机数的部分,不重复代码部分可以研究其他人的相关例子。
double d = nIndex * 1.0 * nIndex / 100; //如果用x的3次方就是nIndex=nIndex*nIndex*nIndex/10000,数字超范围自己研究下,这里不管了
nIndex = (int)d;
nIndex = (nIndex == 100) ? 99 : nIndex; //极限情况考虑进去
num[i] = numbers[nIndex];