코딩도장

이항연산의 교환법칙, 결합법칙 판별

유한 집합 {0,1,....n-1} 위의 이항연산은 (nxn)-2차원 배열로 표시할 수 있습니다.

예컨대 i와 j의 연산값을 i * j = a[i][j] 로 주면 됩니다.

문제 1: (매우 쉬움) 특정한 2차원 (nxn)-배열로 주어진 연산이 교환법칙을 만족하는지 판별하는 함수를 작성하세요.

문제 2: (조금 어려움) 연산이 닫혀 있을 때 앞서 주어진 배열에 대하여 삼항 연산이 다음의 두가지 방법으로 정의될 수 있습니다. m_1(i,j,k) := (i*j)*k, m_2(i,j,k) := i*(j*k) 위의 두 삼항연산이 같은 경우 결합법칙이 성립한다고 합니다. 앞서 주어진 배열의 원소가 {0,1,...,n-1} 으로 주어질 때, 배열로 주어진 이항연산이 결합법칙을 만족하는지 판별하는 함수를 작성하세요.

2019年08月05日 03:31

Sechi

(追記) (追記ここまで)
댓글 작성은 로그인이 필요합니다.
곱셈이 닫혀 있으려면 -1, 0, 1 밖에 없지 않나요 - Noname, 2019年08月23日 10:49 M D
실수에 주어진 연산을 생각하면 그렇지만 문제에서는 아무런 유한집합에 주어진 이항연산에 대한 질문이라 그럴 필요가 없습니다. 문제에 나온 이항연산 *는 보통 생각하는 실수나 정수의 곱을 의미하지는 않습니다. - Sechi, 2019年08月25日 20:09 M D
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

1개의 풀이가 있습니다.

package d238_commutative_associated;
public class CommutativeLaw {
 int op1(int a, int b) {
 return a*b;
 }
 public static void main(String[] args) {
 CommutativeLaw cl = new CommutativeLaw();
 int n=10;
 boolean result=true;
 int i, j;
 for(i=0; i<n; i++) {
 for(j=0; j<n; j++)
 if(cl.op1(i, j)!=cl.op1(j, i)) {
 result=false;
 break; //별 의미 없음.
 }
 }
 System.out.println(result);
 }
}
package d238_commutative_associated;
public class AssociatedLaw {
 int op2(int a, int b) {
 return a*b;
 }
 public static void main(String[] args) {
 AssociatedLaw al = new AssociatedLaw();
 int n=10;
 boolean result=true;
 int i, j, k;
 for(i=0; i<n; i++)
 for(j=0; j<n; j++)
 for (k=0; k<n; k++) {
 if( al.op2( al.op2(i, j), k) != al.op2(i, al.op2(j, k) ) ) {
 result=false;
 break; //별 의미 없음.
 }
 }
 System.out.println(result);
 }
}

2019年10月19日 23:31

Katherine

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

풀이 작성

(注記) 풀이작성 안내
  • 본문에 코드를 삽입할 경우 에디터 우측 상단의 "코드삽입" 버튼을 이용 해 주세요.
  • 마크다운 문법으로 본문을 작성 해 주세요.
  • 풀이를 읽는 사람들을 위하여 풀이에 대한 설명도 부탁드려요. (아이디어나 사용한 알고리즘 또는 참고한 자료등)
  • 작성한 풀이는 다른 사람(빨간띠 이상)에 의해서 내용이 개선될 수 있습니다.
풀이 작성은 로그인이 필요합니다.
목록으로
코딩도장

코딩도장은 프로그래밍 문제풀이를 통해서 코딩 실력을 수련(Practice)하는 곳입니다.


언어별 풀이 현황
전 체 x 5
javascript x 1
java x 1
python x 2
기 타 x 1
코딩도장 © 2014 · 문의 [email protected]
피드백 · 개인정보취급방침 · RSS

AltStyle によって変換されたページ (->オリジナル) /