编程:
写一个函数 findluckMen(),完成如下功能:
输入一个公司的员工名单(可能是员工编号列表或姓名列表,用数组存储),函数以某种形式返回指定数目的幸运员工。
要求:这个函数是通用的,即可以提供给其它程序调用。幸运者数目可以由使用者指定;
函数能处理各种输入的异常,并返回调用者;(提示:随机数使用 java.lang 包中的 Math.random()
调用代码形式:
    public class CLucky{
    //程序员在这里写出你的 findluckMen()函数内容
    …
    //下面调用该函数的测试代码public static void main(String[] args){ 
    CLucky test=new CLucky();
    //模拟数据String[] data={“1001”,”1002”,”1003”, ”1004”,”1005”,”1006”,”1007”,”1008”,”1009”,”1010”};
    int n=2; 
    //指定要找的幸运员工人数
    //程序员在这里补充调用函数的形式,并打印出幸运员工名单
    ...
    }
    }

解决方案 »

  1.   


    Random random = new Random();
    int luckyNumber = random.nextInt(10) + 1000;
    上面代码获得随机员工号   或者员工数组的长度作为nextInt参数  获得随机下标  
      

  2.   

    先贴一个不需要Math.random()的版本
    package clucky;import java.util.Arrays;
    import java.util.Collections;public class CLucky {    public void findluckMen(String[] data, int n) {
            Collections.shuffle(Arrays.asList(data));
            for(int i=0;i<n;i++){
                System.out.println(data[i]);
            }
        }    public static void main(String[] args) {
            CLucky test = new CLucky();
            String[] data = {"1001", "1002", "1003", "1004", "1005", "1006", "1007", "1008", "1009", "1010"};
            int n = 2;
            test.findluckMen(data, n);
        }
    }呵呵~
      

  3.   

    然后是使用Math.random()的~
    package clucky;public class CLucky {    public void findluckMen(String[] data, int n) {
            for(int i=data.length-1;i>data.length-1-n;i--){
                int j=(int)(Math.random()*100)%i;
                String temp = data[i];
                data[i]=data[j];
                data[j]=temp;
                System.out.println(data[i]);
            }
        }    public static void main(String[] args) {
            CLucky test = new CLucky();
            String[] data = {"1001", "1002", "1003", "1004", "1005", "1006", "1007", "1008", "1009", "1010"};
            int n = 2;
            test.findluckMen(data, n);
        }
    }
    呵呵呵~