진법
- 자릿값
- 2진수 2k, 8진수 8k, 16진수 16k
- 10진수로
- Σ dk·bk
- 10진수에서
- 기수로 나누고, 나머지를 아래에서 위로 읽음
- 16진수 ↔ 2진수
- 16진수 한 자리 = 4비트
- 2의 보수
- 비트를 반전하고 1을 더함
공식 모음, 모든 주제의 핵심 풀이 단계, 연습 문제 20개가 들어 있으며 전체 풀이는 맨 뒤에 있습니다.
8비트 2의 보수로 −41을 저장하도록 비트를 설정하세요. 부호 없는 수로 읽으면 패턴의 값 U은 얼마입니까?
어떤 시스템이 3002개 항목 각각에 같은 길이의 고유한 2진 코드를 주어야 합니다. 필요한 최소 비트 수 b는 얼마일까요?
(r ∧ q) ∨ (q → (p → r))의 진리표 8개 행 중 몇 개에서 참인가? 이 수를 N(이)라 하자.
진리표의 16개 행 중 몇 개에서 (s ↔ (q ∨ s)) ∨ (r ∧ ¬p)이(가) 참인가? 이 수를 N(이)라 하자.
카르노 맵으로 F(A, B, C) = Σm(0, 2, 3, 4, 6)의 최소 곱의 합(SOP) 형태를 구하시오. 곱항은 몇 개(N)인가?
d가 무정의항을 나타낼 때 F(A, B, C, D) = Σm(1, 2, 4, 5, 12, 14) + d(0, 7, 15)의 최소 SOP 형태를 구하시오. 곱항은 몇 개(N)인가?
83을(를) 법으로 하는 49의 역원, 곧 0 < x < 83이고 49·x ≡ 1 (mod 83)인 수 x을(를) 구하시오.
RSA 키가 소수 p = 5, q = 37과 공개 지수 e = 7를 쓴다. 개인 지수 d(0 < d < φ(n))을(를) 구하시오.
O(log n)처럼 Big O에서 로그의 밑을 보통 생략하는 이유는 무엇입니까?
어떤 입력에 대해서도 퀵 정렬의 기대(expected) 실행 시간을 O(n log n)으로 만드는 기법은 무엇입니까?
충돌한 키들을 같은 버킷의 리스트에 저장하는 충돌 해결 방법은 무엇입니까?
데이터베이스가 인덱스에 일반 B-트리보다 B+ 트리를 자주 사용하는 이유는 무엇입니까?
연결 그래프에 오일러 회로가 있는가, 회로가 아닌 오일러 경로가 있는가, 둘 다 없는가? 답을 클릭하세요.
E에서 A까지 가는 길이 3의 보행은 몇 개인가? 보행에서는 정점과 간선이 반복될 수 있다. 그 수를 N(이)라 하자.
함수 종속성 A → B는 무엇을 의미합니까?
FULL OUTER JOIN은 무엇을 반환합니까?
호스트에서 기본 게이트웨이의 역할은 무엇입니까?
TCP 빠른 재전송(fast retransmit)은 무엇을 합니까?
어느 부서가 한 서브넷에 호스트 주소 681개가 필요합니다. 충분한 가장 긴 접두사 길이 p(가장 작은 서브넷)는 얼마일까요?
라우터에 다음 네트워크로의 경로가 있습니다: 10.10.84.0/24, 10.10.85.0/24, 10.10.86.0/24, 10.10.87.0/24. 이들을 모두 포함하는 단일 요약 경로의 가장 긴 접두사 길이 p는 얼마일까요?
답: U = 215
비트 설정: 각 비트는 2의 거듭제곱(128, 64, …, 1)의 값을 가집니다. 16진수 한 자리는 정확히 네 비트이고, 8비트 2의 보수에서 맨 왼쪽 비트의 값은 −128입니다. 비트 연산은 각 비트 자리를 따로 처리합니다.
답: b = 12 bit
위치 기수법: 각 자리의 값은 그 숫자에 밑의 거듭제곱을 곱한 것입니다. 2진수의 자리값은 1, 2, 4, 8, 16, …, 16진수는 1, 16, 256, …이며 A–F는 10–15를 뜻합니다. 8비트 2의 보수에서 가장 왼쪽 비트는 +128이 아니라 −128의 값을 가지며, 이렇게 음수를 저장합니다.
답: N = 7
진리표: 서로 다른 변수가 n개인 식은 참값(1 = 참, 0 = 거짓)의 모든 조합마다 하나씩 2ⁿ개의 행을 가집니다. 안쪽부터 바깥쪽으로 작업하고 모든 부분식에 각각 열을 주세요. ¬a는 값을 뒤집습니다. a ∧ b는 둘 다 1일 때만 1입니다. a ∨ b는 둘 다 0일 때만 0입니다. a → b는 a = 1이고 b = 0일 때만 0입니다. a ↔ b는 양쪽이 같을 때 1입니다.
답: N = 13
진리표: 서로 다른 변수가 n개인 식은 참값(1 = 참, 0 = 거짓)의 모든 조합마다 하나씩 2ⁿ개의 행을 가집니다. 안쪽부터 바깥쪽으로 작업하고 모든 부분식에 각각 열을 주세요. ¬a는 값을 뒤집습니다. a ∧ b는 둘 다 1일 때만 1입니다. a ∨ b는 둘 다 0일 때만 0입니다. a → b는 a = 1이고 b = 0일 때만 0입니다. a ↔ b는 양쪽이 같을 때 1입니다.
답: N = 2
카르노 맵: 칸은 그레이 코드(00, 01, 11, 10) 순서로 배열되므로, 가장자리를 넘어 이웃한 칸을 포함해 이웃한 칸은 정확히 한 변수만 다릅니다. 모든 1이 덮일 때까지 1들을 1, 2, 4, 8, 16칸의 직사각형으로, 가능한 한 크고 가능한 한 적게 묶으세요. 각 그룹은 그 안에서 일정하게 유지되는 변수로 이루어진 곱항 하나입니다. 2ᵏ칸의 그룹은 변수 k개를 잃습니다. 무정의항(X)은 그룹을 키우는 데 쓸 수 있지만 반드시 덮을 필요는 없습니다. 0들을 묶으면 최소 POS 형태가 나옵니다.
모든 그룹은 2ᵏ칸의 직사각형입니다. 가장자리 칸은 반대쪽 가장자리의 칸과 이웃합니다.
답: N = 3
카르노 맵: 칸은 그레이 코드(00, 01, 11, 10) 순서로 배열되므로, 가장자리를 넘어 이웃한 칸을 포함해 이웃한 칸은 정확히 한 변수만 다릅니다. 모든 1이 덮일 때까지 1들을 1, 2, 4, 8, 16칸의 직사각형으로, 가능한 한 크고 가능한 한 적게 묶으세요. 각 그룹은 그 안에서 일정하게 유지되는 변수로 이루어진 곱항 하나입니다. 2ᵏ칸의 그룹은 변수 k개를 잃습니다. 무정의항(X)은 그룹을 키우는 데 쓸 수 있지만 반드시 덮을 필요는 없습니다. 0들을 묶으면 최소 POS 형태가 나옵니다.
1과 X로 만들 수 있는 가장 큰 그룹들.
답: 49−1 mod 83 = 61
역원과 합동식: a는 gcd(a, n) = 1일 때, 그리고 그때에만 n을 법으로 하는 역원을 가집니다. 확장 유클리드 알고리즘은 1 = s·n + t·a로 쓰고, 그러면 a⁻¹ ≡ t (mod n)입니다. gcd(a, n) = 1인 합동식 a·x ≡ b (mod n)의 해는 x ≡ a⁻¹·b입니다. 법이 서로소인 두 합동식 x ≡ r₁ (mod m₁)과 x ≡ r₂ (mod m₂)는 m₁·m₂를 법으로 해가 하나 있습니다(중국인의 나머지 정리). 오일러 φ(n)은 1부터 n까지의 수 중 n과 서로소인 수의 개수입니다: φ(n) = n·∏(1 − 1/p).
각 나머지 r은 r ≡ t·49 (mod 83)로 쓸 수 있습니다.
답: d = 103
모듈러 거듭제곱과 RSA: aᵏ mod n은 반복 제곱법으로 계산합니다. k를 이진수로 쓰고, 제곱하고, 단계마다 나머지를 취하고, 비트가 1인 거듭제곱들을 곱하세요. 페르마: a를 나누지 않는 소수 p에 대해 aᵖ⁻¹ ≡ 1 (mod p)이므로 지수를 p − 1을 법으로 줄일 수 있습니다. RSA: 소수 p와 q를 고르고, n = p·q, φ(n) = (p − 1)(q − 1)입니다. 공개 지수 e는 φ(n)과 서로소이고 개인 지수는 d = e⁻¹ mod φ(n)입니다. c = mᵉ mod n으로 암호화하고 m = cᵈ mod n으로 복호화합니다.
답: C · 밑이 다른 로그는 상수배만큼만 다르기 때문에
밑을 바꾸면 로그에 상수가 곱해지는데, Big O는 상수 계수를 무시합니다.
답: B · 피벗을 균등하게 무작위로 선택하기
무작위 피벗을 사용하면 모든 입력에 대해 기대 실행 시간이 O(n log n)입니다. 나쁜 경우는 여전히 존재하지만 발생할 가능성은 매우 낮습니다.
답: C · 분리 체이닝(Separate chaining)
체이닝은 버킷마다 연결 리스트(또는 다른 구조)를 유지하고, 개방 주소법은 테이블 안에서 다른 빈 슬롯을 찾습니다.
답: B · 모든 레코드가 연결된 리프에 있어 범위 스캔이 효율적이기 때문에
B+ 트리에서 내부 노드는 탐색을 안내할 뿐이고 리프는 키 순서로 연결되어 있으므로, 범위 질의는 첫 키를 찾은 뒤 리프를 따라 걸어갑니다.
답: 오일러 회로
오일러, 해밀턴, 트리: 연결 그래프는 모든 정점의 차수가 짝수이면 오일러 회로(모든 간선을 한 번씩 지나 출발점으로 돌아옴)를 가지고, 차수가 홀수인 정점이 정확히 두 개이면 회로가 아닌 오일러 경로를 가집니다. 이 경로는 한 홀수 정점에서 다른 홀수 정점까지 이어집니다. 해밀턴 회로는 모든 정점을 한 번씩 방문하며, Kn에는 (n − 1)!/2개가 있습니다. 정점이 n개인 트리는 간선이 n − 1개이고, 간선이 m개인 연결 그래프는 m − n + 1개의 간선을 제거한 뒤에도 신장 트리를 유지합니다.
답: N = 3
차수: 정점의 차수는 그 정점에 닿는 간선의 수입니다. 모든 간선은 양 끝이 있으므로 차수의 합은 간선 수의 두 배입니다: Σ deg(v) = 2|E|(악수 보조정리). 따라서 차수가 홀수인 정점의 수는 짝수입니다. Kn은 간선이 n(n − 1)/2개이고, 정점이 n개인 k-정규그래프는 nk/2개이며, 정점이 n개인 트리는 간선이 n − 1개입니다.
답: D · A의 각 값은 정확히 하나의 B 값과 연결된다
A → B는 A 값이 같은 두 행은 반드시 B 값도 같아야 한다는 뜻입니다. A가 B를 결정합니다.
답: D · 두 테이블의 모든 행, 가능한 경우 짝을 짓고 그렇지 않으면 NULL로 채움
완전 외부 조인은 두 테이블의 모든 행을 유지하고, 일치하는 행은 짝을 지으며 빠진 쪽은 NULL로 채웁니다.
답: D · 다른 네트워크로 가는 트래픽에 사용되는 라우터이다
호스트는 로컬이 아닌 목적지로 가는 패킷을 기본 게이트웨이(보통 로컬 라우터)로 보냅니다.
답: A · 타임아웃을 기다리지 않고 중복 ACK 세 개를 받으면 세그먼트를 재전송한다
중복 ACK 세 개는 세그먼트 하나가 손실되었음을 강하게 시사하므로 TCP는 즉시 이를 재전송합니다. 재전송 타이머를 기다리는 것보다 훨씬 빨리 복구됩니다.
답: p = 22
IPv4 서브네팅: 주소는 32비트입니다. 접두사 /p는 앞의 몇 비트가 네트워크를 나타내는지를 말하고, 나머지 32 − p비트로 호스트 번호를 매깁니다. 서브넷에는 주소가 2³²⁻ᵖ개 있지만 첫 주소(네트워크 주소)와 마지막 주소(브로드캐스트 주소)는 호스트에 줄 수 없어 호스트 2³²⁻ᵖ − 2개가 들어갑니다. 예외: /31(점대점 링크, RFC 3021)은 주소 2개를 모두 호스트에 쓰고, /32는 단일 주소(단일 호스트 또는 루프백)입니다.
답: p = 22
경로 요약: 요약 경로 a.b.c.0/p는 처음 p비트가 일치하는 모든 네트워크를 포함합니다. 첫 번째와 마지막 네트워크에서 다른 옥텟을 2진수로 쓰고, 공통 앞쪽 비트 수에 그 앞 옥텟들의 비트를 더하면 가장 긴 요약 접두사가 됩니다.
요약 경로: 10.10.84.0/22
ExamProblems · examproblems.com/courses/computer-science-fundamentals