자바 프로 그래 밍 은 주어진 범위 내 에서 무 작위 수 를 반복 하지 않 는 방법 소결 을 생 성 합 니 다.

3998 단어 Java난수
본 고 는 자바 프로 그래 밍 이 주어진 범위 내 에서 무 작위 수 를 반복 하지 않 는 방법 을 총 결 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
자바 의 Math 클래스 에 random()방법 이 존재 합 니 다.이 방법 은 기본적으로 0.0 에서 1.0 사이 의 double 형 무 작위 수 를 생 성 합 니 다.조금 만 처리 하면 우리 가 필요 로 하 는 난수 와 무 작위 문 자 를 만 들 수 있다.
Math 클래스 의 random()방법 을 제외 하고 자바 util.Random 클래스 도 무 작위 수 를 생 성 할 수 있 습 니 다.다음은 각각 예 를 들 어 설명 한다.
1.Math.random()방법
생 성 난수:

package test;
import java.util.SortedSet;
import java.util.TreeSet;
public class MathRandom {
  static SortedSet set = new TreeSet();
  public static int randomSet(double m, double n) {
    int num = (int) m + (int) (Math.random() * (n - m));
    return num;
  }
  public static void shuangSe(int num1, int num2) {
    for (int i = 0; i < num1; i++) {
      set.add(randomSet(1, 33));
    }
    if (set.size() < num2) {
      shuangSe(num2 - set.size(), num2);
    }
  }
  public static void main(String[] args) {
    shuangSe(6, 6);
    System.out.print(set);
    System.out.println("  "+randomSet(1,16));
  }
}

실행 결과(무 작위):

[3, 13, 17, 21, 23, 25]  2

무 작위 문자 생 성:

package test;
public class MathRandomChar {
  public static char getRandomChar(char c1,char c2){
    return (char)(c1+Math.random()*(c2-c1+1));
     }
  public static void main(String[] args) {
    System.out.println("a-z       :  "+getRandomChar('a','z'));
  }
}

실행 결과(무 작위):

a-z       :  g
2.java.util.Random 방법
방법 1:for 순환 추가:

package test;
import java.util.Random;
import java.util.SortedSet;
import java.util.TreeSet;
public class Test {
  static Random ran = new Random();
  static SortedSet set = new TreeSet();
  public static void randomSet(int n, int m) {
    for (int i = 0; i < n; i++) {
      set.add(ran.nextInt(33) + 1);
    }
    if (set.size() < m) {
      randomSet(m - set.size(), m);
    }
  }
  public static void main(String[] args) {
    randomSet(6, 6);
    System.out.print(set);
    System.out.println(" "+(ran.nextInt(16)+1));
  }
}

실행 결과(무 작위):

[1, 15, 18, 29, 30, 31] 13
방법 2:while 순환

package test;
import java.util.Random;
import java.util.Set;
import java.util.TreeSet;
public class ShuangSeQiu {
  public static void main(String[] args) {
    Random ran = new Random();
    Set<Integer> set = new TreeSet<>();
    while (true) {
      int a = ran.nextInt(33) + 1;
      set.add(a);
      if (set.size() > 5) {
        System.out.print(set);
        break;
      }
    }
    System.out.println(" "+(ran.nextInt(16)+1));
  }
}

실행 결과(무 작위):

[2, 11, 12, 16, 23, 26] 7
PS:여기 서 여러분 께 두 가지 기능 이 유사 한 온라인 도 구 를 제공 하여 참고 하 시기 바 랍 니 다.
온라인 무 작위 숫자/문자열 생 성 도구:
http://tools.jb51.net/aideddesign/suijishu
온라인 무 작위 문자/무 작위 암호 생 성 도구:
http://tools.jb51.net/aideddesign/rnd_password
고강도 암호 생 성기:
http://tools.jb51.net/password/CreateStrongPassword
자바 알고리즘 과 관련 된 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,,,,자바 데이터 구조 및 알고리즘 튜 토리 얼
본 고 에서 말 한 것 이 여러분 의 자바 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기