A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邓江红 中级黑马   /  2014-4-1 23:25  /  1230 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

C#中要在一定范围内随机产生一组不重复的数字的具体代码

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

5 个回复

正序浏览
补充一点,之前产生的随机数必须要给定范围,不要会死循环
回复 使用道具 举报
//先new一个random类出来
random rd =new random();
//调用next();方法,输入要随机生成的数字范围,比如从1-9,生成的数字大于等于1,小于9。
int num =rd.next(1,9);
回复 使用道具 举报
  /// <summary>
       /// 产生不重复的随机数
       /// </summary>
       /// <param name="as_arrNums">元素不重复的数组</param>
       /// <param name="as_temp">临时数</param>
       /// <param name="as_minNum">最小值</param>
       /// <param name="as_maxNum">最大值</param>
       /// <param name="as_random">Random对象</param>
       /// <returns></returns>
        public static int getRanNumber(int[] as_arrNums, int as_temp, int as_minNum, int as_maxNum, Random as_random)
        {
            int ls_row = 0;
            while (ls_row < as_arrNums.Length)
            { //循环遍历数组如果有重复的则重新取值
                //数组元素默认值为0 所以第1次传入的as_temp的值为0会重新取值
                if (as_temp == as_arrNums[ls_row])
                {
                    as_temp = as_random.Next(as_minNum, as_maxNum);
                    as_temp = getRanNumber(as_arrNums, as_temp, as_minNum, as_maxNum, as_random);
                }
                ls_row++;
            }
            return as_temp;
        }

        public static int[] get_ranNumbers(int as_count)   
        {
            Random ran = new Random();
            int[] nums = new int[as_count];
            int ls_int = 0;
            for (int i = 0; i < nums.Length; i++)
            {
                ls_int = getRanNumber(nums, ls_int, 1, 11, ran);
                nums[i] = ls_int;
            }

            return nums;
        }

static void Main(string[] args)
        {
            int[] nums = get_ranNumbers(10);
            foreach (int num in nums) {
                Console.WriteLine(num);
            }
            Console.ReadKey();
运行结果   我测试过ok

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
  1. Random random = new Random();
  2.             random.Next(0, 99);//随机生成 >=0 和 <99的随机整数
复制代码

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
  1.             Random r = new Random();
  2. int k=r.Next(1, 100);// 1到[100之间的随机数
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马