随机数组的几种思考

来源:互联网 发布:长绸扇子淘宝 编辑:程序博客网 时间:2024/04/30 12:27

1,打乱已经有的数组的一种简单办法

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]);
                
            }

这种办法只是直接给数组换了位置

 

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]];
}

 

这种办法没有上一种简单,但是确保了每个数组中的位置保留原位置的几率最低

0 0
原创粉丝点击