黑马程序员技术交流社区

标题: 随机函数 [打印本页]

作者: 邓江红    时间: 2014-4-1 23:25
标题: 随机函数
C#中要在一定范围内随机产生一组不重复的数字的具体代码

作者: mdb    时间: 2014-4-2 00:08
  1.             Random r = new Random();
  2. int k=r.Next(1, 100);// 1到[100之间的随机数
复制代码

作者: gyt_xtt    时间: 2014-4-2 09:06
  1. Random random = new Random();
  2.             random.Next(0, 99);//随机生成 >=0 和 <99的随机整数
复制代码


作者: itheima_xu    时间: 2014-4-2 11:18
  /// <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
作者: 李恒权    时间: 2014-4-2 12:46
//先new一个random类出来
random rd =new random();
//调用next();方法,输入要随机生成的数字范围,比如从1-9,生成的数字大于等于1,小于9。
int num =rd.next(1,9);
作者: itheima_xu    时间: 2014-4-2 13:04
补充一点,之前产生的随机数必须要给定范围,不要会死循环




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2