1. 자바에서 임의의 숫자를 생성하는 방법
1. J2SE의 Math.random ()을 사용하여 시스템이 0과 1 사이의 이중 유형 십진을 무작위로 선택하고 25와 같은 숫자를 곱하면 0과 25 범위에서 임의의 숫자를 얻을 수 있습니다. J2ME에서는 사용할 수 없습니다.
int randomnumber = (int) math.round (math.random ()*(max-min)+min);
2. 시스템 클래스에는 currentTimeMillis () 메소드가 있습니다. 이 메소드는 1970 년 1 월 1 일 0시에서 현재까지의 긴 밀리 초 숫자를 반환합니다. 임의의 숫자로 사용할 수 있으며 특정 숫자로 변조 될 수 있으며, 이는 임의 숫자의 범위를 제한 할 수 있습니다. 이 메소드는 루프에서 동시에 여러 랜덤 숫자를 생성하면 동일한 값이되며 특정 제한 사항이 있습니다!
Long RandomNum = System.CurrentTimeMillis (); int randomnumber = (int) randomnum%(max-min)+min;
3. java.util.random 클래스를 사용하여 임의의 숫자 생성기를 생성하는데, 이는 J2ME 프로그램에서 임의의 숫자를 얻는 데 종종 사용하는 방법이기도합니다. 그것은 두 가지 형태의 생성자, 즉 Random ()과 랜덤 (긴 시드)을 가지고 있습니다. Random ()는 발전기의 시드로 현재 시간, System.currenttimeMillis ()를 사용하고 임의 (긴 씨앗)는 지정된 씨앗을 발전기의 시드로 사용합니다. 임의의 숫자 생성기 (랜덤) 객체가 생성 된 후, 다른 메소드를 호출하여 다른 유형의 임의 숫자를 얻습니다 : nextint (), nextlong (), nextfloat (), nextDouble () 등 두 개의 랜덤 객체가 동일한 시드를 사용하고 동일한 순서로 동일한 함수를 호출하면 정확히 동일한 값을 반환합니다.
랜덤 random = new random (); int randomnumber = random.nextint (max)%(max-min + 1) + min;
2. n 무작위 범위 내에서 비 반복 숫자
1. 방법 1 : 무거운 무게를 제거하기 위해 가장 단순하고 가장 쉽게 이해하기 쉬운 두 사이클
/ *** 범위에서 무작위로 비 반복 숫자를 무작위로 지정* 가장 단순하고 가장 기본적인 방법* @param min 최소 범위를 지정* @param max* @param n 숫자 숫자*/ public static int [] randomcommon (int min, int max, int n) {if (n> (max -min + 1) || max <min) {return null; } int [] result = new int [n]; int count = 0; while (count <n) {int num = (int) (math.random () * (max -min)) + min; 부울 플래그 = 참; for (int j = 0; j <n; j ++) {if (num == result [j]) {flag = false; 부서지다; }} if (flag) {result [count] = num; 카운트 ++; }} 반환 결과; } 2. 방법 2 : 해시 세트의 특징을 사용하면 다른 값만 저장할 수 있습니다.
/ *** 범위에서 무작위로 비 반복 숫자를 지정하십시오* 해시 세트 기능을 사용하여 다른 값 만 저장 될 수 있습니다* @param min* @param max* @param max 범위의 최대 값을 지정* @param n random number* @param hashset <integger> int min, int n, int n, int n, int n, int n). > (max -min + 1) || max <min) {return; } for (int i = 0; i <n; i ++) {// math.random () 메소드 int num = (int) (math.random () * (max -min))+min; set.add (num); // 다른 숫자를 해시 세트에 저장} int setsize = set.size (); // 저장된 숫자가 지정된 숫자보다 작 으면 나머지 숫자의 임의 수를 재귀 적으로 생성하고 루프가 루프를 생성하여 지정된 크기에 도달하도록 (setSize <n) {randomset (min, max, n- setsize, set); // recursive}} 3. 방법 3 : 무작위로 도착한 숫자 제외
/*** 초기화되지 않은 배열에서 무작위로 n 비 반복 숫자를 지정하면 숫자가 무작위로 생성되어 결과에 넣습니다. * Replace the number that is randomly sent to the array to be selected by the number corresponding to the subscript of the array to be selected (len-1)* Then randomly generate the next random number from len-2, and so on* @param max Specify the maximum range value* @param min Specify the minimum range value* @param n Number of random numbers* @return int[] Random number result set*/ public static int[] randomArray(int min,int max, int n) {int len = max-min+1; if (max <min || n> len) {return null; } // 주어진 범위에서 선택할 배열을 초기화 int [] source = new int [len]; for (int i = min; i <min+len; i ++) {source [i-min] = i; } int [] result = new int [n]; 랜덤 rd = 새로운 랜덤 (); int index = 0; for (int i = 0; i <result.length; i ++) {// 선택할 배열 0 ~ (len-2) random index = math.abs (rd.nextint () % len-); // 랜덤 숫자를 결과 세트 결과에 넣습니다. [i] = source [index]; // 선택할 배열에서 무작위로 수신 한 숫자를 선택할 배열의 첨자 (LEN-1)로 선택할 배열의 첨자 (LEN-1)에 해당하는 숫자로 선택합니다. 출처 [index] = source [len]; } 반환 결과; } 호출 인스턴스 :
public static void main (String [] args) {int [] result1 = randomcommon (20,50,10); for (int i : result1) {system.out.println (i); } int [] result2 = randomarray (20,50,10); for (int i : result2) {system.out.println (i); } HASHSET <integer> set = new Hashset <integer> (); randomset (20,50,10, 세트); for (int j : set) {system.out.println (j); }}3. 샘플 코드
패키지 테스트; import java.util.hashset; import java.util.random; public class snippet { /*** 초기화되지 않은 배열에서 n 비 반복 숫자를 무작위로 지정하고, 숫자를 무작위로 생성하고 결과로 전송되는 숫자를 무작위로 대체합니다. 그런 다음 LEN-2에서 다음 무작위 숫자를 무작위로 생성하고* @Param Max* @param min 최소 범위를 지정합니다* @param n 랜덤 번호 숫자* @return int [] 랜덤 번호 결과 세트*/ public static int [] randomarray (int min, int max, int n) {int len = max-min+1; if (max <min || n> len) {return null; } // 주어진 범위에서 선택할 배열을 초기화 int [] source = new int [len]; for (int i = min; i <min+len; i ++) {source [i-min] = i; } int [] result = new int [n]; 랜덤 rd = 새로운 랜덤 (); int index = 0; for (int i = 0; i <result.length; i ++) {// 선택할 배열 0 ~ (len-2) 랜덤 첨자 int s = rd.nextint ()%len; // system.out.print (s- +","); index = math.abs (rd.nextint ()%len-); // system.out.println (색인); // 무작위로 수신 된 숫자를 결과 세트 결과에 넣습니다 [i] = source [index]; // 선택할 배열의 해당 첨자 숫자로 선택할 배열에서 무작위로 수신 된 숫자를 교체 (LEN-1) 소스 [index] = source [len]; } 반환 결과; } public static void main (string [] args) {// int [] result1 = randomcommon (20,50,10); // for (int i : result1) {// system.out.println (i); //} int [] result2 = randomarray (0,4,5); for (int i : result2) {system.out.print (i); } // HASHSET <INTEGER> set = new Hashset <integer> (); // randomset (20,50,10, set); // for (int j : set) {// system.out.println (j); //}}}위의 내용은이 기사에 관한 모든 것입니다. 모든 사람들이 Java 프로그래밍을 배우는 것이 도움이되기를 바랍니다.