是不是用流程控制语句写出来? 我试过, 没做出来 ,              麻烦强人会的代码发上来 , 希望能写上注释。。

解决方案 »

  1.   

    Math.random();

    Random r = new Random();
    r.nextInt();
      

  2.   


    List<Double> nums = new ArrayList<Double>();
    while (nums.size() < 3) { //生成3个
        Double d = Math.random();
        if (!nums.contains(d)) { //判断不重复
            nums.add(d);
        }
    }for (Double d : nums) {
        System.out.println(d);
    }其实你完全可以认为连续生成的随机数不会有重复的...
      

  3.   

    看看这个,我在这里边发的那个贴子远远符合楼主的要求了
    http://http://topic.csdn.net/u/20080905/14/0985fd79-2f47-43f1-a871-1a465cf962de.html
      

  4.   

    public class SuiJiShu { /**
     * @param args  * 
     */
    public static void main(String[] args) {
    int n=3;//产生随机数的个数
    int[] it=new int[n];
    int i=0;//数组的下标变量
    out:while(true){
    it[i]=(int)(Math.round(Math.random()*10));//产生随机数
    if(i>0){//从产生的第二个数开始执行判断
    for(int k=0;k<i;k++){
    if(it[i]==it[k]){//如果产生的和以前的数字重复
    continue out;//那么就从新产生
    }
    }
    i++;//直到新产生的数与以前的都不相同就让下标加一即产生下一个
    }else{
    i++;
    }
    if(i>=n){
    break;//产生的数字已经够数就退出循环
    }

    }

    for(int j=0;j<it.length;j++){
    System.out.println(it[j]);//循环显示产生的随机数
    } }}
      

  5.   

    用UUID生成你所要的不更加方便吗?
    import java.util.UUID;public class UTest {
        public static void main(String[] args) {
            UUID uuid = UUID.randomUUID();
            System.out.println(uuid);
        }
    }
      

  6.   

    public class TestRandom {
    public static void main(String[] args) {
    List<Integer> num = new ArrayList<Integer>();
    while(num.size()<10) {
    Integer d = (int)(Math.random()*10+1);
    if(!num.contains(d)) {
    num.add(d);
    }
    }
    Iterator it = num.iterator();
    while(it.hasNext()) {
     System.out.println(it.next());
    }
    }
    }
    产生是个随机数
      

  7.   

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Set s = new HashSet();
    Random r = new Random();
    int i=0; while (s.size() < 1000) {
    s.add(r.nextInt(1000));
    i++;
    }
    System.out.println(i);
    System.out.println(s); }
      

  8.   

       public static void main(String aa[]){
    Map s = new HashMap();   
    for(int i=0; i<50;i++){  // 产生一50个随机数!
        Random r = new Random(); 
        int b = r.nextInt(100);  // 伪随机数要比产生的数大,这个应该不难理解
        s.put(b,b);   // 关键在这里,因为 map的键 是唯一的,我用产生的数做键,得到的键值肯定就唯一了
    }
    Set ss = s.keySet();   // 以下是通过 keySet()方法 在迭代得到 map的键值 既需要的随机数
    Iterator it = ss.iterator();
    while(it.hasNext()){
        System.out.println(it.next());
    }
           }就是不知道这样方法效率怎么样`
       反正是能达到楼主的要求``
      

  9.   

    你这个产生的数字应该不是整数形式的吧 
      它是根据 IP MAC地址等 产生的 
    那么长, 只适合做数据库的主键! 
     ````
      

  10.   

    判断是否集合里面有重复数值这个方法不好,效率很低,总是不停循环直到找到不同值为止,效率是个很大的问题;时间作为种子值乘以随机数,这个的确可以,但是有有一个问题是,我要产生的随机数还要限定范围,不知道该如何实现呢。比如产生随机数在1-5之间。[email protected],麻烦直到的告知一下,多谢。