|
本帖最后由 monery8 于 2013-3-13 15:37 编辑
1、C# 如何产生100以内不重复的随机数
可以考虑先把这100个数放在一个数组内,每次随机取一个位置(第一次是1-100,第二次是1-99,...),将该位置的数与最后一个位置的数对调就可以了。
- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- int [] arr=new int[101];
- int i;
- //初始化数组
- for(i=1;i<=100;i++)
- {
- arr<i> = i;
- }
- //随机数
- Random r = new Random();
- for (int j = 100; j >= 1; j--)
- {
- int address = r.Next(1,j);
- int tmp = arr[address];
- arr[address] = arr[j];
- arr[j] = tmp;
- }
- //输出
- foreach (int k in arr)
- {
- Console.Write(k+" ");
- }
- }
- }
- }</i>
复制代码
2、C#生成不重复随机数
- /// <summary>
- /// 功能描述:返回不重复随机数数组
- /// </summary>
- /// <param name="Num">随机数个数</param>
- /// <param name="minNum">随机数下限</param>
- /// <param name="maxNum">随机数上限</param>
- /// <returns></returns>
- public int[] GetRandomArray(int Number,int minNum,int maxNum)
- {
- int j;
- int[] b=new int[Number];
- Random r=new Random();
- for(j=0;j<Number;j++)
- {
- int i=r.Next(minNum,maxNum);
- int num=0;
- for(int k=0;k<j;k++)
- {
- if(b[k]==i)
- {
- num=num+1;
- }
- }
- if(num==0 )
- {
- b[j]=i;
- }
- else
- {
- j=j-1;
- }
- }
- return b;
- }
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|