日期:2014-05-18 浏览次数:21119 次
List<int> list = new List<int>();
for (int i = 0; i < 100; i++)
{
Random r = new Random(1);
int value = r.Next(101);
if (list.Contains(value))
{
while (true)
{
value = r.Next(1,101);
if (!list.Contains(value))
{
list.Add(value);
break;
}
}
}
else
{
list.Add(value);
}
}
string text = list.ToString();
------解决方案--------------------
我比较喜欢用随机数来做索引:
Random rnd=new Random();
int[] array=new int[100];
ArrayList list=new ArrayList();
for(int i=1;i<=100;i++)
{
list.Add(i);
}
for(int j=0;j<100;j++)
{
int tempRandom=rnd.Next(0,100-j);
int tempValue=(int)list[tempRandom];
array[j]=tempValue;
list.Remove(tempValue);
}
------解决方案--------------------
可以建立一个仓库,放入1-100,然后随机取一个,插入到目标数组,插入一个就从仓库里去掉这个.再随机的插,然后去掉插入的这个数.
这是思路,不知道能不能实现呢?
我说的仓库是不是也可以定义为一个100的数组呢?
------解决方案--------------------
学习 。。
我的技术不是很高,所以我也只能这么思考:
int[] Num= new int[100];
bool[] B = new bool[101];
int Temp = new int() ;
Random R = new Random();
for (int i = 0; i < 100; i++)
{
Again:
Temp = R.Next(1, 101);
if (B[Temp] == false)
{
Num[i] = Temp;
B[Temp] = true;
}
else
{
goto Again;
}
}
for (int x = 0; x < 100; x++)
{
Console.WriteLine("{0} :{1}", x, Num[x]);
}
------解决方案--------------------
如果硬是要做的话,6楼的想法不错
题目有点变态,要求不重复又要求随机,感觉矛盾了(也就是说这个随机不是正真的随机),搞不好正确答案是“该题目矛盾”。