어떤 사건에서 일어날 수 있는 경우의 가짓수
ex1) 동전을 던지는 사건 : 경우의 수2
ex2) 주사위를 던지는 사건 : 경우의 수6
또는
사건B가 일어날 경우의 수//두 개의 주사위를 던졌을 때 합이 3 또는 4의 배수일 경우
int[] dice1 = {1, 2, 3, 4, 5, 6};
int[] dice2 = {1, 2, 3, 4, 5, 6};
int nA = 0;
int nB = 0;
int nAandB = 0;
for (int item1: dice1) {
for (int item2: dice2) {
if ((item1 + item2) % 3 == 0) {
nA +=1;
}
if ((item1 + item2) % 4 == 0) {
nB += 1;
}
if ((item1 + item2) % 12 == 0) {
nAandB +=1;
}
}
}
System.out.println("결과: " + ((nA + nB) - nAandB)); //20 출력
동시에
일어날 경우의 수//두개의 주사위 a, b를 던졌을 때 a는 3의 배수, b는 4의 배수인 경우
nA = 0;
nB = 0;
for (int item1: dice1) {
if(item1 % 3 == 0) {
nA++;
}
}
for (int item2: dice2) {
if (item2 % 4 ==0) {
nB++;
}
}
System.out.println("결과: " + nA * nB);
public ArrayList getDivisor(int num) {
ArrayList result = new ArrayList<>();
for (int i = 1; i < (int)num / 2; i++) {
if (num % i == 0) {
result.add(i);
}
}
result.add(num);
return result;
}
public int getGCD(int numA, int numB) {
int gcd = -1;
ArrayList divisorA = this.getDivisor(numA);
ArrayList divisorB = this.getDivisor(numB);
for (int itemA: (ArrayList<Integer>)divisorA) {
for (int itemB: (ArrayList<Integer>)divisorB) {
if(itemA == itemB) {
if (itemA > gcd) {
gcd = itemA;
}
}
}
}
return gcd;
}
public int getLCM(int numA, int numB) {
int lcm = -1;
int gcd = this.getGCD(numA, numB);
if (gcd != -1) {
lcm = (numA * numB) / gcd;
}
return lcm;
}