작업 증명(Proof of Work) 합의 알고리즘 많은 분산 시스템에서는 합의 알고리즘을 통해 일을 처리한다. 합의란 다수의 참여자가 적절한 합의 방법을 이용해 통일된 의사결정을 내리기 위해 사용하는 알고리즘을 말한다. 상태 기계 복제(SMR, State machine Replication) 상태 기계가 같은 상태로 시작하면, 처리가 정상적으로 이루어졌을 경우 모두 같은 상태를 가지게 된다. SMR같은 시스템은 일부가 고장나거나 악의적인 행동을 보여도 전체 시스템은 정상적으로 동작한다고 보장해야 한다. CFT(Crash Fault Tolerant) 서버가 단순히 고장난 형태에 대응할 수 있는 알고리즘이다. BFT(Bizantine fault Tolerant) 서버가 악의적인 행동을 보일 때 대응할 수 ..
1. 배열에 저장된 값 중 사용자가 입력한 값이 몇 개 들어 있는지 표시하려고 한다. 이 프로그램에서 밑줄 친 곳에는 무언가가 생략되어 있거나 에러가 난다. 잘못된 이유와 어떻게 수정해야 하는지 적으시오. #include #define N 30 void print_title(); void main() { int result[N] = { ... }; int count, i, target; scanf("%d", &target); print_title; count = frequency(result[N], target); return 0; } void print_title() { ... } int frequency(int arr[N], value) { ... } void main() : 함수 내에서 0을 반환하..
문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크게 외친다. 이제 플레이어는 제한된 시간 안에 N장의 카드 중에서 3장의 카드를 골라야 한다. 블랙잭 변형 게임이기 때문에, 플레이어가 고른 카드의 합은 M을 넘지 않으면서 M과 최대한 가깝게 만들어야 한다. N장의 카드에 써져 있는 숫자가 주어졌을 때, ..
항진명제, 모순, 불확정명제 항진명제(tautology): 항상 참인 명제 모순(contradiction): 항상 거짓인 명제 불확정명제(contingency): 항진명제도 아니고 모순도 아닌 명제 예) $p$ $\neg q$ $p \lor\neg q$ $p \land \neg q$ $T$ $F$ $T$ $F$ $F$ $T$ $T$ $F$ $p \lor\neg q$는 항상 참이므로 항진명제이고, $p \land \neg q$는 항상 거짓이므로 모순이다. 논리적 동치 두 명제 $p$, $q$에 대하여 $p \leftrightarrow q$가 항진명제이면 $p$와 $q$는 논리적 동치이며, $p \equiv q$는 $p$와 $q$가 논리적 동치(logically equvalent)임을 나타낸다. 조건-논리합..
시작하면 랜덤하게 생성된 QR코드 퍼즐 조각들이 있다. 각 조각을 더블클릭하면 빈 공간으로 움직인다. 개발자 도구로 보면 각각 번호가 매겨져 있다. 이걸 보고 하나하나 맞춰야 하나 싶었는데, 스크립트를 보면 unescape 함수가 있다. 웹을 통해서 데이터를 전송할 때 특정 문자들은 특수한 기능으로 사용되는데, 이로 인해 생기는 문제를 해결하기 위한 방법이 이스케이핑이다. unescape는 escape로 이스케이핑 된 문자열을 되돌린다. 참고: opentutorials.org/module/2/2824 콘솔창에 함수를 복사해 붙이면 주소를 얻을 수 있다. 소스 탭으로 가 보면 img 폴더 내에 qr.png 파일이 있다. 완성된 qr코드 이미지이다. 이 파일 주소를 복사한다. qr code decoder라 ..
시작하면 검은 배경에 click me!라는 버튼이 마우스를 피해 돌아다닌다. 개발자 도구에서 이 버튼이 있는 div 태그를 찾아서 style을 보자. position: absolute를 해제하면 click me! 버튼이 고정된 위치에 있게 된다. 누르면 Flag를 얻을 수 있다.