首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • java中 的随机函数 怎么样从100个数中抽取10个
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-09 11:42:18 楼主
    大家帮帮忙啊  java中怎么实现从100个中抽取10个数啊  不用数组也可以
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-09 12:04:411楼 得分:0
    import java.util.*;
    public class RandomTest {
    public static void main(String [] args){
    int a[]={1,2,3,4,5,6,7,8,9,0};
    Random r=new Random();
    System.out.println(a[r.nextInt(10)]);
    }

    }
    这是取一个数代码,要取一百个,加个for循环就行啦,原理一样
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lisl2003
    • 等级:
    发表于:2008-06-09 12:07:512楼 得分:0
    Java code
    int nextInt(int n) 返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lisl2003
    • 等级:
    发表于:2008-06-09 12:10:333楼 得分:0
    将你的100个数放到数组中,然后利用java.util.Random 得到10个下标。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-09 12:54:544楼 得分:0
    int a[]=new int(10);
    for(int i=0;a.lenth:i++);
    {a[i]=0}
    int k=rand.nextInt(100);
    a[0]=k;
    for(i=0:a.lenth;i++);
    {while(a[i]==a[i+1]){
      a[i+1]=rand.nextInt(100)}
    }
    不知道这样写可以不,帮忙看看啊。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-10 09:02:015楼 得分:0
    怎么抽取?没用过这个Random
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-10 09:54:176楼 得分:0
    java.util.Random类是产生一个随机的数.你用来产生的数来做为数组的下标.因为是随机产生的数,所以我们并不知道那个数是什么,所以从数组里面取出来的数是不确定的.用FOR循环来控制你要取出来的数的个数
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-10 09:57:257楼 得分:0
    引用 3 楼 lisl2003 的回复:
    将你的100个数放到数组中,然后利用java.util.Random 得到10个下标。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xql80329
    • 等级:
    发表于:2008-06-10 11:55:598楼 得分:0
    引用 1 楼 gejixin 的回复:
    import java.util.*;
    public class RandomTest {
    public static void main(String [] args){
    int a[]={1,2,3,4,5,6,7,8,9,0};
    Random r=new Random();
    System.out.println(a[r.nextInt(10)]);
    }

    }
    这是取一个数代码,要取一百个,加个for循环就行啦,原理一样

    赞成
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-10 12:03:249楼 得分:0
    如果是1到100,然后取10个不重复的,那么用List吧,取一个remove一个喵~``
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-10 12:11:4410楼 得分:0
    或者是随机的向Set里放,反正set放不进重复的喵~~~`

    Java code
    public static void main(String[] args) { Set<Integer> tenSet = new HashSet<Integer>(); Integer num = null; while( tenSet.size() != 10 ) { num = (int)(Math.random()*100); tenSet.add(num); } for(Integer i : tenSet) { System.out.println(i); } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-12 10:38:5411楼 得分:0
    楼上的高见。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-12 11:13:2312楼 得分:0
    该回复于2008-06-12 11:34:58被版主删除
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-12 18:19:5313楼 得分:0
    int[] a = new int[10];
            for (int i = 0; i < a.length; i++) {
                a[i] = 0;
            }
            int k = new Random().nextInt(100);
            a[0] = k;
            for (int i = 0; i < a.length; i++) {
                for (int j = i; j > 0; ) {
                    if (a[i] == a[j]) {
                        a[i] = new Random().nextInt(100);
                    }
                    j-- ;
                }
                System.out.println("\n a[i] = " + a[i]);
            }
        }
    这样子可以取到。我测试了的。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-12 19:45:5614楼 得分:0
    用math.radom()方法(获得0.0-1.0之间的随机数)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-28 21:23:5515楼 得分:0
      QQ群: 2033279  java技术联盟
      QQ群: 46529613 PHP技术联盟
    企业平台网基金会主办!
    www.2008pq.com
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhangkai08111
    • 等级:
    发表于:2008-07-28 21:29:2316楼 得分:0
    恩,两种方法:
    java.util.Random
    Math.random()
    取10?
    for它个10下就得到了。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-29 10:03:5517楼 得分:0
    mark一下!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-29 10:04:0118楼 得分:0
    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【laoniu8511】截止到2008-07-29 10:04:00的历史汇总数据(不包括此帖):
    发帖的总数量:3                        发帖的总分数:70                      每贴平均分数:23                     
    回帖的总数量:4                        得分贴总数量:0                        回帖的得分率:0%                     
    结贴的总数量:1                        结贴的总分数:20                     
    无满意结贴数:0                        无满意结贴分:0                       
    未结的帖子数:2                        未结的总分数:50                     
    结贴的百分比:33.33 %              结分的百分比:28.57 %                 
    无满意结贴率:0.00  %              无满意结分率:0.00  %                 
    楼主该结一些帖子了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-30 17:27:1519楼 得分:0
    看看JDK的帮组手册,查询一下random怎么使用
    自己看看,就明白了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-30 17:58:4120楼 得分:0
    int[] a = new int[10];
            for (int i = 0; i < a.length; i++) {
                a[i] = 0;
            }
            int k = new Random().nextInt(100);
            a[0] = k;
            for (int i = 0; i < a.length; i++) {
                for (int j = i; j > 0; ) {
                    if (a[i] == a[j]) {
                        a[i] = new Random().nextInt(100);
                    }
                    j-- ;
                }
                System.out.println("\n a[i] = " + a[i]);
            }
        }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-30 18:06:4521楼 得分:0
    import java.util.Random;

    public class NumberRandom {

    public static String getRandomNumber(int length)
        {
        char[] tempCs= { '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'};
        Random random = new Random();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < length; i++)
        {
            sb.append(tempCs[Math.abs(random.nextInt())%tempCs.length]);
        }
        return sb.toString();
        }

    public static void main(String [] args)
    {
    System.out.println(getRandomNumber(2));
    }
    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-30 18:14:4122楼 得分:0
    引用 10 楼 cangyue87 的回复:
    或者是随机的向Set里放,反正set放不进重复的喵~~~`

    Java codepublicstaticvoidmain(String[] args)
    {
      Set <Integer>tenSet=newHashSet <Integer>();
      Integer num=null;while( tenSet.size()!=10)
      {
        num=(int)(Math.random()*100);
        tenSet.add(num);
      }for(Integer i : tenSet)
      {
        System.out.println(i);
      }
    }
    很好很强大 不会重复的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-30 20:50:5623楼 得分:0
    public static void main(String[] args)
    {
      Set <Integer> tenSet = new HashSet <Integer>();
      Integer num = null;
      while( tenSet.size() != 10 )
      {
        num = (int)(Math.random()*100);
        tenSet.add(num);
      }
      for(Integer i : tenSet)
      {
        System.out.println(i);
      }
    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cqd19881103
    • 等级:
    发表于:2008-07-30 21:55:4324楼 得分:0
    import java.util.*;

    public class y100qu1 {
    public static void main(String[] args) {
    int a[] = new int[100];
    for (int i = 0; i < 100; i++) {
    a[i] = i + 1;
    }
    Random b = new Random();
    for (int j = 1; j <= 10; j++) {
    int c = Math.abs(b.nextInt() % 100);
    System.out.println(a[c]);
    }
    }

    }

    这样也行
    如果你要自己输入数的话把上面定义数组的换点就可以了.
    int a[100]={……}
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-30 22:07:2725楼 得分:0
    发个彩票系统,想从多少个数中抽取多少个都可以,随您便:)
    import java.util.*;
    public class ChouJiang {


    public static void main(String[] args) {
    Scanner in=new Scanner(System.in);
      System.out.print("你需要抽取多少个数?");
      int k=in.nextInt();
      System.out.print("你的数字最大的是多少?");
          int n=in.nextInt();
          int [] numbers=new int[n];
          for(int i=0;i <numbers.length;i++)
          numbers[i]=i+1;
          int[]  result=new int[k];
          for(int i=0;i <result.length;i++)
          {
              int r=(int)(Math.random()*n);
              result[i]=numbers[r];
              numbers[r]=numbers[n-1];
              n--;
          }
          Arrays.sort(result);
          //System.out.println("赌中接下来的这个号码组合,你就有钱了!");
          for(int r=0;r <result.length;r++)
          System.out.println(result[r]);
    }

    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hahadaqiang
    • 等级:
    发表于:2008-07-30 22:22:2226楼 得分:0
    该回复于2008-07-30 22:54:31被版主删除
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-03 03:01:5627楼 得分:0
    //Core Java Page110
    import java.util.*;

    /**
    * This program demonstrates array manipulation.
    * @version 1.20 2004-02-10
    * @author Cay Horstmann
    */
    public class LotteryDrawing
    {
      public static void main(String[] args)
      {
          Scanner in = new Scanner(System.in);

          System.out.print("How many numbers do you need to draw? ");
          int k = in.nextInt();

          System.out.print("What is the highest number you can draw? ");
          int n = in.nextInt();

          // fill an array with numbers 1 2 3 . . . n
          int[] numbers = new int[n];
          for (int i = 0; i < numbers.length; i++)
            numbers[i] = i + 1;

          // draw k numbers and put them into a second array
          int[] result = new int[k];
          for (int i = 0; i < result.length; i++)
          {
            // make a random index between 0 and n - 1
            int r = (int) (Math.random() * n);

            // pick the element at the random location
            result[i] = numbers[r];

            // move the last element into the random location
            numbers[r] = numbers[n - 1];
            n--;
          }

          // print the sorted array
          Arrays.sort(result);
          System.out.println("Bet the following combination. It'll make you rich!");
          for (int r : result)
            System.out.println(r);
      }
    }
    这里有讲解
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-04 13:14:2828楼 得分:0
    引用 14 楼 cantona1994 的回复:
    用math.radom()方法(获得0.0-1.0之间的随机数)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-05 14:55:0629楼 得分:0
    100个数放在数组里,用随机数生成1到100间的10个,用指针按照随机数去取……
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-05 17:06:3330楼 得分:0
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.Random;

    public class TestSet {

      public static void main(String[] args){
        int[] array=getData();
        printArray(array);
      }
      public static int[] getData(){
        int[] array=new int[10];
        int count=0;
        HashSet hashset=new HashSet();
        Random rand=new Random();
        while(hashset.size()!=10){
          hashset.add(new Integer(rand.nextInt(100)));
        }
        Iterator iter=hashset.iterator();
        while(iter.hasNext()){
          array[count++]=((Integer)iter.next()).intValue();
        }
        return array;
      }
      public static void printArray(int[] array){
        if(array!=null){
          for(int i=0;i <array.length;i++){
          System.out.print(array[i]+" ");
          }
        }
      }
    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-06 16:18:3531楼 得分:0
    最好每循环一次休眠一下,Thread.sleep()
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-06 17:08:3632楼 得分:0
    很受用,正想做一个抽取随即数字
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    <
    发表于:2008-08-06 17:28:3133楼 得分:0
    Java code
    public static List getRandomNoFromList(List l,int returnSize) throws Exception { if(returnSize>l.size()) throw new Exception("returnSize is larger than list size"); Collections.shuffle(l); return l.subList(0, returnSize); }

    最简单的方法,完全利用jdk