실제로는 프로그래밍을 하다가 질문이 생겼지만, 논리의 전개 방식이 수학과 유사하다고 생각하여 과학게시판에 글을 남겨봅니다.
코딩을 하다가 문득 and, or 라는 함수를 만드는 일이 생겼습니다.
예를들어, and(true, true, true) = true 이런 식으로 돌아가는 함수입니다.
매개변수가 2개라면,
and(true, true) = true
and(true, false) = false
and(false, true) = false
and(false, false) = false
매개변수가 1개라면
and(true) = true
and(false) = true
그렇다면 매개변수가 없다면?
and() = ??
라는 상황인데, 만약에 위와 같은 함수에 and() 라고 공집합을 호출하면 결과는 true일까요 false일까요?
마찬가지로 or라는 함수의 결과는 다음과 같습니다.
or(true, true) = true
or(true, false) = true
or(false, true) = true
or(false, false) = false
or(true) = true
or(false) = false
or() =??
이 위의 or()의 결과는 true일까요 false일까요?
그리고, 과학게시판에서 질문을 할 때는 질문만 하면 안되고 어디까지 생각하였는지 이야기하는 것이 미덕이라고 하여 고민한 내용을 좀 이야기해봅니다.
And 함수의 일단 정의를 들 수 있겠는데요, "모두가 참이면 결과가 참이다."
"모두가 참이다" 라는 조건과 "결과가 참이다" 라는 두 조건이 나오는데요 이 두조건은 서로 필요충분 조건이 된다고 가정하였습니다.
그렇다면 이 명제도 참이 됩니다. "하나라도 거짓이라면" => "결과는 거짓이다" 라는 명제가 될 것이고, 공집합에서는 적어도 하나 이상의 거짓이 없기 때문에 결과는 참이다.
Or 함수도 마찬가지로,
"하나라도 참이면 결과가 참이다." 여기서는 적어도 하나 이상의 참이 존재하지 않기 때문에 결과는 거짓이다.
위와 같이 결과를 예측해보았는데 결과가 맞는지, 이 논리 전개 방식이 올바른지 여쭙고 싶네요.