자바 2차원배열 중복되지않는 난수 생성

자바 2차원배열 중복되지않는 난수 생성

작성일 2023.12.05댓글 2건
    게시물 수정 , 삭제는 로그인 필요

import java.util.Random;
import java.util.Scanner;

public class Fortest2
{

public static void main(String args[])
{
Scanner scn = new Scanner(System.in);

System.out.println("N X N 2차원 배열 생성을 위한, N값을 입력하세요.");
int n = scn.nextInt();

int table[][] = new int [n][n];

for (int i = 0 ; i < table.length ; i++)
{
for (int j = 0 ; j < table[i].length ; j++)
{
table[i][j] = (int)(Math.random() * 41 - 20);
}
}


System.out.println("-20 ~ 20 사이 중복되지 않은 난수 발생 결과");
for (int g = 0 ; g < n ; g++)
{
for (int k = 0 ; k < n ; k++)
{
System.out.print(table[g][k] + "\t");
}
System.out.println();
}
}
}



입력 받은 값을 통해 2차원 배열을 생성시키고, Math.random()을 사용하여 -20부터 20까지 생성된 난수를 table[][] 배열에 집어넣는 코드까지는 쳤는데 배열을 출력하면 중복된 난수가 나옵니다.

이 난수가 중복되지 않도록 해야하는데, Hashmap이나 다른 메서드를 사용하지 않고
for (int i = 0; i < 10; i++) {
a[i] = r.nextInt(10) + 1;
for (int k = 0; k < i; k++) {
if (a[i] == a[k]) {
i--;
}
}
}
이 코드(1차원배열 난수 중복생성 방지) 처럼 for문을 이용하여 중복을 방지하도록 해야합니다. 
그러면 어떤식으로 코드를 짜야하나요??


#자바 2차원배열 #자바 2차원배열 정렬 #자바 2차원배열 길이 #자바 2차원배열 출력 #자바 2차원배열 복사 #자바 2차원배열 입력 #자바 2차원배열 값 넣기 #자바 2차원배열 버블정렬 #자바 2차원배열 조합 #자바 2차원배열 정렬 람다

profile_image 익명 작성일 -

안녕하세요.

코드 작성해서 올려드려요.~

import java.util.Scanner; public class B2 { public static void main(String args[]) { Scanner scn = new Scanner(System.in); System.out.println("N X N 2차원 배열 생성을 위한, N값을 입력하세요."); int n = scn.nextInt(); int table[][] = new int [n][n]; int[] temp = new int[n*n]; //1차원 배열을 이용 for(int i=0; i<temp.length;i++) { temp[i] = (int)(Math.random() * 41 - 20); for (int k = 0; k < i; k++) { if (temp[i] == temp[k]) { i--; break; } } } //중복없는 값을 2차원 배열로 이동 int index= 0; for (int i = 0 ; i < table.length ; i++) for (int j = 0 ; j < table[i].length ; j++) table[i][j] = temp[index++]; System.out.println("-20 ~ 20 사이 중복되지 않은 난수 발생 결과"); for (int g = 0 ; g < n ; g++) { for (int k = 0 ; k < n ; k++) { System.out.print(table[g][k] + "\t"); } System.out.println(); } } }

profile_image 익명 작성일 -

예시와 동일하게 하면 됩니다.

i-- 다음에 break도 넣어줘야겠네요.

c언어 2차원 배열중복 없이 난수 저장

c언어 2차원 배열중복값없이 난수 생성해서 저장하고 싶은데 코드 어떻게 짜야될까요? 중복 없는 수열을 미리 만들어 놓고 거기서 하나씩 빼오면 됩니다. 범위가 넓으면 이미...

c언어 2차원 배열 중복검사문제

... rotto[i][j]=a;//배열에 임의의 난수값 저장 for(x=0;x<j;x++)//중복제거를 위한 코드 if(rotto[i][j]==rotto[i][x]){ j--; break; } } } 제가 짠 2차원배열 코드 일부분...