수학) 221121 : -1을 허용한 이진법 풀이
이진법을 잘 모른다면 못읽을 칼럼인데, 딱히 이진법이 뭔지 설명하긴 귀찮으니 모르면 패스해도 됨.
단 이진법은 교과외니 안배우겠다 이딴소리 말고, 솔직히 이번 문제는 그렇다 치고 예전 문과 21번에 대놓고 이진법적인 추론 나왔는데 이쯤되면 얌전하게 공부하는게 맞음.
수열은 나열도 중요하나 분명히 발상도 중요함.
수능에서 두 번 넘게 나온 주제면, 당연히 알아야한다고 생각.
(시작)
일단 준 수열이 전부 양수인 상황은
이진수 표현으로
11111111110(2)이다.
이진법 표현으로 111(2)는 2^3-1=7인건 잘 알테니
저건 2^11-1-1=2046임을 알 수 있다.
아무튼 음수를 허용한 이진수는 무슨뜻이냐면
예를 들어
(-1)1111111110(2)의 표현을 허용한단 이야기.
이 경우, 원래 다 합쳐서 2046인데, 맨 앞 비트인 1024가 두번 빼지므로, -2가 될 것임을 알 수 있다.
다른 예시 하나로, 111(2)는 7이고
1(-1)1(2)는 7에서 2를 두 번 빼야하니 3이다.
이 문제에서 요구하는 수열의 이진수 표현은 다음과 같은 특징을 가진다.
1) 11자리 이진수이다.
2) 마지막 비트(1의 자리)는 0으로 고정이어야 하고, 나머지 비트의 값이 1 또는 -1이어야 한다.
(an들의 절댓값은 2^n으로 고정되어 있으므로)
여기서 잘 생각을 해 보자.
풀이1)
이 풀이는 직관과 이진법 논리의 활용이다. 직관이라 했으나 논리적 귀결은 완전함.
111(2)는 1000(2)보다 클 수 없다.
즉 n자리 이진수는 항상 n+1자리 이진수 보다 작다.
이 문제에서 수열의 합은 음수이다.
따라서 첫 비트가 -1이어야 전체 합이 음수가 될 것임을 쉽게 알 수 있다.
그게 앞서 언급한 수 (-1)1111111110(2)이다.
이 수의 값을 구할때, "두 번 뺀다"고 했다. 당연히 비트 1짜리를 비트 -1로 만들었으니 해당하는 비트 값을 두 번 빼줘야 한다.
위 수가 -2인데, -14가 되려면 -12가 남았다.
그러면 이진법 표현으로 6(110)에 해당하는 비트들을 -1로 치환하면 -12가 빼지고, 답을 얻는다.
즉 뒤에서 둘째비트(a1), 뒤에서 셋째비트(a2)를 -1로 바꾸면 된다.
(-1)1111111(-1)(-1)0(2)가 정답이다.
풀이2)
이 상황을 일반화해서 얻은 풀이법이다. 풀이 (1)이 더 좋으나, 이것도 참고해 보자.
일단 -14는 음수 허용 이진수로,
0000000(-1)(-1)(-1)0
임은 쉽게 안다.
답을 구하려면 0을 지우면 되지 않을까?
0(-1)의 다른 표현은 (-1)1이다.
이거면 충분하다!
-14를 처음부터 음수비트로 표현하고, 쫘라락 올려보자.
0000000(-1)(-1)(-1)0
000000(-1)1(-1)(-1)0
00000(-1)11(-1)(-1)0
이쯤되면 그냥 -1을 계속 올리면 된다는 것을 깨달을 수 있고,
(-1)1111111(-1)(-1)0이 정답이다.
-2+8+32+128+512=678.
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
첨언, 쓸데없으니 안읽어도됨. 원래 본문에 있었는데 개쓸데없어서 댓글로 옮김.
이 문제는 수능문제이기에 답만 구하면 된다. 따라서 답을 구했으면 답의 유일성을 보장받으니 패스하면 된다. 한번 비트로 표현했을 때 답의 유일성을 구하는 법을 알아보자. 이는 풀이(2)의 치환법을 이용한다.
다음과 같은 과정을 따르면 된다.
1)임의의 수를 양수인 경우 1과 0만 사용한 이진법으로,
음수인 경우 -1과 0만 사용한 이진법으로 우선 표현한다.
2) 01=1(-1), 0(-1)=(-1)1
임을 이용해서 0으로 된 빈칸을 메꿀 수 있다.
예를 들어, 10111000.... 100으로 주어진 경우
맨 끝의 1의 윗자리 부터는 모든 0을 자명하게 메꾸는 것이 가능하다.
3) 10, (-1)0은 아랫 자릿수를 이용한 치환이 불가능하다. 따라서 윗 상황에서 1"00"의 00은 1 또는 -1로 바꿀 수 없다.
1(-1)과 -1(1)은 음수 허용 이진법에서, 자릿수를 늘리지 않는 이상 -1과 1만 사용하도록 하는 다른 표현이 존재하지 않으니, 다른 치환법은 없다고 할 수 있다.
4) 마지막으로 원하는 자릿수까지 쉽게 1 또는 -1을 반복적으로 자릿수를 올릴 수 있다.
5) 따라서, 자릿수가 주어졌을 때, 임의의 정수를 -1을 허용한 이진법으로, 맨 뒤의 연속된 0을 제외하고 -1과 1만으로 표현 가능하다. 유일한 표현에서 출발하여(특정한 수에 대한 이진법 표현은 유일하다), 일정한 알고리즘을 따랐기에 이 알고리즘을 통해 얻은 표현이 유일하다는 것도 보장된다.
6) 그런데 3)에 의해 다른 형태로의 치환이 불가능 하므로 이 표현의 유일성도 얻을 수 있다.
역시 컴공은 다르시네요
이게머고..
어렵나요..?
비트에 몸을 맡겨라
일단 이진법을 모르지않나요 일반인들은..
수열에서 많이 쓰다보니, 강사분들 중에서 이진법을 가르치는 분들 꽤 계시더라고요
이진법 수열용으로 알아둘만하다는 예시를 들고싶었어요
혹시 어떤 강사분이 가르치시나요? 저는 수열에서 이진법 들어본적이없어서요
일단 시대쪽 강사분들 거의 다 가르치는것도 같고 인강강사분들중에도 몇몇 아는데 특정했다가 만약 아니면 곤란하니.. 암튼 꽤 되는거로 들었어용
정병훈 선생님 듣는데 이진법 이야기 해주십니다.
(오아시스 함수 해석, 드라이브 수학I 이었던 걸로 기억해요)
이진법 공부 필수인듯
3년째 그것만 내는데 그걸 공부 안 하겠다하면
ㄹㅇ.
아 3진법은 안나오나 w 필요한데
차라리 4진법은 그냥 i 쓸 수 있으니까 낼 수 있기도 하고
근데 저거 표현만 달리했을 뿐 똑같은 거 아니에요?
그쵸? 풀이2는 좀 특이한데 풀이1은 표기법만 정한거임
다들 시그마로 접근하던데 처음부터 이진법 쓰면 편하다는 논조..?에요
이거 그거였나? 보수법?
네
오잉 이것도 보수법이에요?
풀이 (2)가 2의 보수법을 풀어서 설명한거에요
대신 풀이에 써 둔 변환이 필요해서 보수법만으론 안풀리긴해요
혹시 이런 생각을 하시는 분은 저랑 뇌가 다르게 생겼나요?
몇등급 이상이 습득하면 좋다고 생각하시나요?
1
생각도 못해본 관점이네요 이래야 할 거 같은데를 부호화해놓은 느낌이네요 풀때 생각은 풀이 1로 했고, 텍스트로는 풀이 2가 더 잘 읽히는 느낌입니당
?????????????
ㄱㅅ
저도 이거 풀때 이진법 생각났음
수능장에서 그냥 벅벅해서 맞췄었는데, 이진법 풀이는 새롭네요ㄷ_ㄷ
??
ㄹㅇ 이진법 알면 날먹할 수 있는 문제