asp.net C#怎能把一维数组中元素随机打乱排序?
比如int[]num={1,2,3,4,5,6,7,8,9}如何能得到一个随机排序的新数组?如int[]newnum={4,7,1,2,8,3,9,5,6}....
比如 int[] num = {1,2,3,4,5,6,7,8,9} 如何能得到一个随机排序的新数组?如 int[] newnum={4,7,1,2,8,3,9,5,6} .
展开
5个回答
展开全部
int[] arra = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
for (int i = arra.Length - 1; i > 0; i--)
{
Random rand = new Random();
int p = rand.Next(i);
int temp = arra[p];
arra[p] = arra[i];
arra[i] = temp;
}
for (int i = 0; i < arra.Length;i++ )
{
Console.WriteLine(arra[i]);
}
for (int i = arra.Length - 1; i > 0; i--)
{
Random rand = new Random();
int p = rand.Next(i);
int temp = arra[p];
arra[p] = arra[i];
arra[i] = temp;
}
for (int i = 0; i < arra.Length;i++ )
{
Console.WriteLine(arra[i]);
}
追问
虽然看不懂什么意思,但 我直接复制使用了 制作一个拼图游戏成功了, 采纳了!谢谢!
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int[] num ={1,2,3,4,5,6,7,8,9,10 };
List<int> lnum = new List<int>(num);
List<int> lresult = new List<int>();
Random rnd = new Random();
int max = lnum.Count;
for (int i = 0; i < max; i++)
{
int index = rnd.Next(lnum.Count);
lresult.Add(lnum[index]);
lnum.RemoveAt(index);
}
List<int> lnum = new List<int>(num);
List<int> lresult = new List<int>();
Random rnd = new Random();
int max = lnum.Count;
for (int i = 0; i < max; i++)
{
int index = rnd.Next(lnum.Count);
lresult.Add(lnum[index]);
lnum.RemoveAt(index);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以直接在后台用cs代码循环一下,输出javascript代码就行了。
或者如楼上所讲,在后台用CS代码把数组循环输出成“[1,2,3,4,...]”的格式,然后再赋值给js。
或者如楼上所讲,在后台用CS代码把数组循环输出成“[1,2,3,4,...]”的格式,然后再赋值给js。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int[] num = {1,2,3,4,5,6,7,8,9} //定义数组
Random rnd = new Random(); //随机数函数
int[] index = new int[num.Length]; //定义随机下标数组
for(int i=0;i<num.Length;i++) //生成随机下标
{
int n;
do{
n= rnd.Next(num.Length)
}
while(!index.Contains(n)) //下标不可重复
index[i]=n;
}
int[] newnum=new int[num.Length]; //定义新数组
for(int i=0;i<num.Length;i++) //为新数组赋值
{
newnum[i]=num[index[i]];
}
可能要有所改动,但不会太大
Random rnd = new Random(); //随机数函数
int[] index = new int[num.Length]; //定义随机下标数组
for(int i=0;i<num.Length;i++) //生成随机下标
{
int n;
do{
n= rnd.Next(num.Length)
}
while(!index.Contains(n)) //下标不可重复
index[i]=n;
}
int[] newnum=new int[num.Length]; //定义新数组
for(int i=0;i<num.Length;i++) //为新数组赋值
{
newnum[i]=num[index[i]];
}
可能要有所改动,但不会太大
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询