public int builderRandom(){
      int iReturn=0;
      Random r=new Random();
      iReturn=r.nextInt();
      return iReturn;
  }

解决方案 »

  1.   

    100的话完全一样的机会的几率是0
    30的时候几率是4%
    20的时候几率是14%
    5个随机数可以重复。如果需要不重复,改动下面的程序即可int iReturn = 0;
    Random r = new Random();
    int testTime = 100;
    int dupTime=0;
    for (int testI = 0; testI < testTime; testI++) {
    HashMap resultMap = new HashMap();
    int dupFlag = 0;
    for (int i = 0; i < 100; i++) {
    String[] iArray = new String[5];
    for (int j = 0; j < 5; j++) {
    iReturn = r.nextInt(99);
    iArray[j] = String.valueOf(iReturn);
    }
    java.util.Arrays.sort(iArray);
    StringBuffer finalStr = new StringBuffer();
    for (int j = 0; j < 5; j++) {
    finalStr.append(iArray[j]).append(",");
    }
    if (resultMap.get(finalStr.toString()) == null) {
    resultMap.put(finalStr.toString(), "0");
    }
    else {
    System.out.println("Duplicated");
    dupFlag = 1;
    dupTime++;
    break;
    }
    }
    if(dupFlag==0)
    System.out.println("No duplicated");
    }
    System.out.println("Testing result, duplicate time : " + dupTime + "/" + testTime);
      

  2.   

    基于安全代码的原因,Java不支持真正意义上的随机数。