저장한 점을 선으로 이었다고 알고리즘이 같은 값을 돌려주지는 않는다

알고리즘 H는 입력의 정수 부분을 먼저 취한 뒤 제곱한다. 정수 입력의 저장 점들은 G와 모두 같다. x=1.5에서 두 출력값을 구하고, 출력 4를 만드는 입력 집합도 각각 비교하라.

좌우 난간 사이로 올라가는 실내 계단

사진: Basile Morin · CC BY-SA 4.0 · 원본 출처

H(x)=⌊x⌋2(x≥0),G는 점 (n,n2)를 직선으로 잇는다H(x)=\lfloor x\rfloor^2\quad(x\ge0),\qquad G\text{는 점 }(n,n^2)\text{를 직선으로 잇는다}

알고리즘 H는 입력의 정수 부분을 먼저 취한 뒤 제곱한다. 정수 입력의 저장 점들은 G와 모두 같다. x=1.5에서 두 출력값을 구하고, 출력 4를 만드는 입력 집합도 각각 비교하라.

H(1.5)=1,G(1.5)=2.5,H(x)=4  ⟺  2≤x<3,G(x)=4  ⟺  x=2H(1.5)=1,\quad G(1.5)=2.5,\qquad H(x)=4\iff2\le x<3,\quad G(x)=4\iff x=2

1.5의 정수 부분은 1이라 H의 출력은 1이다. G는 (1,1)과 (2,4)를 직선으로 연결하므로 가운데 입력 1.5의 값은 (1+4)/2=2.5다. H가 4가 되려면 비음이 아닌 정수 부분이 2이어야 해서 입력 구간은 [2,3)이다. G는 비음이 아닌 정수 구간마다 양의 기울기로 증가하므로 4를 얻는 입력은 x=2 하나다. 저장 점에서 값이 같아도 입력 처리와 구간 사이의 규칙이 다르면 다른 함수다. 화면의 연결선을 보기만 하지 않고 중간 입력을 실제 알고리즘에 넣어 확인하는 검사를 설계할 수 있다.

교사 질문: 정수 부분을 반올림으로 바꾸면 4를 만드는 입력 구간의 끝점은 어떻게 달라지는지 정의부터 확인하자.

출처·착안: Aider à la compréhension des fonctions avec un logiciel : les fonctions définies par un algorithme. 위 문항의 조건·수치·풀이와 교사 질문은 새로 작성했다.