C#--第九周实验--任务3--定义一个静态成员方法,使用Random实现从一组数中随机抽取n个不重复的数。

时间:2021-01-09 08:06:37
/* (程序头部注释开始)   
 * 程序的版权和版本声明部分   
 * Copyright (c) 2011, 烟台大学计算机学院学生    
 * All rights reserved.   
 * 文件名称:定义一个静态成员方法,使用Random实现从一组数中随机抽取n个不重复的数。
 * 作 者: 雷恒鑫    
 * 完成日期: 2012 年 10 月 22 日   
 * 版 本 号: V1.0    
 * 对任务及求解方法的描述部分   
 * 输入描述:假定已经获取题库中的试题号,并存放在数组arrayKT中。
 * 输入描述:例如, int [] arrayKT={10,13,18,19,20,22,30,31...}。
 * 输入描述:定义一个静态成员方法,该方法实现从上述数组中随机抽出给定数量(n,1<=n<=arrayKT.Length)的考题,
 * 输入描述:并组成一个考题字符串。比如,随机从arrayKT中抽取5题组成考题字符串:“10,18,20,22,30”。
 * 输入描述:要求,组成考题字符串中考题不重复,且一定在数组中存在。
 * 输入描述:自行设计程序验证上述方法正确性。
 * 问题描述:   
 * 程序输出:   
 * 程序头部的注释结束   
 */


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace nine_week
{
    class Program
    {
        static void Main(string[] args)
        {
            int [] arrayKT={10,13,18,19,20,22,30,31};
            getKTH(5, arrayKT);
            Console.ReadKey();
        }

        public static string getKTH(int n,params int [] arrayKT)
        {
              //提示:主体中使用random类
            Random rd = new Random();
            Console.Write("从题库中抽出的题为:");
            for (int j = 0; j < n; j++)
            {
                int index = rd.Next(0, arrayKT.Length);
                Thread.Sleep(1000); //延时的办法的方法来避免Random快速连续产生相同随机数
                Console.Write(" {0}",arrayKT[index]);
            }
            return "";
        }
    }
}


运行结果:


C#--第九周实验--任务3--定义一个静态成员方法,使用Random实现从一组数中随机抽取n个不重复的数。