当前位置: 代码迷 >> Java相关 >> 随机数抽取 题目如下
  详细解决方案

随机数抽取 题目如下

热度:120   发布时间:2009-09-28 19:38:24.0
随机数抽取 题目如下



  输入一批数据,随机抽取n个数


要求:1:显示输入数据

       2:n可以任意定

       3:显示抽取数据

       4:数据重复可否自定
搜索更多相关的解决方案: 随机数  抽取  

----------------解决方案--------------------------------------------------------
我写了下 有点乱 不好意思
import java.util.*;
import java.math.*;
public class randomnum  
{
    public static void main(String[] args)  
    {
        Scanner in = new Scanner(System.in);
        int n=0,random=1;
        int[] b = new int[100];
        int[] rannum = new int[100];
        Boolean start = true;
        int num1=1;
     
        System.out.println("请输入要随机取数的个数n");
        int num = in.nextInt();
        System.out.println("请输入取出的数能否重复(1/0)");
        int c = in.nextInt();
            System.out.println("请输入一串整数");
        while(in.hasNextInt())
        {
            int i;
            b[n] = in.nextInt();
            n++;
        }
        for(int i=1;i<n;i++)
        {
            int j;
            for(j=0;j<i;j++)
            {
                if(b[j]==b[i])
                break;
            }
            if(j==i)
            num1++;         
        }
        if(c==1)
        {
            if(n<num)
            {
                System.out.println("取不到那么多个不同的随机数");
                System.exit(0);
            }
            for(int i=0;i<num;i++)
            {
                random = (int)(Math.random()*(n-1));
                rannum[i] = b[random];
            }
        }
        else if(c==0)
        {
            if(num1<num||n<num)
            {
                System.out.println("取不到那么多个不同的随机数");
                System.exit(0);
            }
            else
            {
            for(int i=0,j=1;i<num;i++,j++)
            {
                while(start)
                {
                    random = (int)(Math.random()*(n-1));
                    for(int k=0;k<j;k++)
                {
                    if(rannum[k]!=b[random])
                        start = false;
                    else
                    {
                        start=true;
                        break;
                    }
                }
                }
                rannum[i] = b[random];
                start = true;
            }
            }
        }


        for(int i=0;i<n;i++)
        {
            System.out.print(b[i]+" ");
        }
        System.out.println("");

        for(int i=0;i<num;i++)
            {
            System.out.print(rannum[i]+" ");
        }
        System.out.println("");


         
    }
}

----------------解决方案--------------------------------------------------------
  相关解决方案