반 에크 수열 계산기
직전 항이 몇 걸음 전에 마지막으로 나왔는지를 그대로 다음 항으로 삼는 자기참조 수열(OEIS A181391)을 계산합니다. 값마다 "마지막으로 나온 자리"를 기억해 두는 O(1) 갱신 과정을 단계별로 보여줍니다.
0 ~ 400까지 계산합니다.
a(30)
0
전체 31항 중 0이 10번(32.3%) · 최댓값 14
막대 길이가 값(직전 항이 몇 걸음 전에 나왔는지)입니다.
0항부터 순서대로.
| n | 직전 항 a(n−1) | 마지막으로 나온 자리 | a(n) |
|---|---|---|---|
| 1 | 0 | 처음 나옴 | 0 |
| 2 | 0 | 0번째 자리 | 1 |
| 3 | 1 | 처음 나옴 | 0 |
| 4 | 0 | 1번째 자리 | 2 |
| 5 | 2 | 처음 나옴 | 0 |
| 6 | 0 | 3번째 자리 | 2 |
| 7 | 2 | 4번째 자리 | 2 |
| 8 | 2 | 6번째 자리 | 1 |
| 9 | 1 | 2번째 자리 | 6 |
| 10 | 6 | 처음 나옴 | 0 |
| 11 | 0 | 5번째 자리 | 5 |
| 12 | 5 | 처음 나옴 | 0 |
| 13 | 0 | 10번째 자리 | 2 |
| 14 | 2 | 7번째 자리 | 6 |
| 15 | 6 | 9번째 자리 | 5 |
| 16 | 5 | 11번째 자리 | 4 |
| 17 | 4 | 처음 나옴 | 0 |
| 18 | 0 | 12번째 자리 | 5 |
| 19 | 5 | 15번째 자리 | 3 |
| 20 | 3 | 처음 나옴 | 0 |
| 21 | 0 | 17번째 자리 | 3 |
| 22 | 3 | 19번째 자리 | 2 |
| 23 | 2 | 13번째 자리 | 9 |
| 24 | 9 | 처음 나옴 | 0 |
| 25 | 0 | 20번째 자리 | 4 |
| 26 | 4 | 16번째 자리 | 9 |
| 27 | 9 | 23번째 자리 | 3 |
| 28 | 3 | 21번째 자리 | 6 |
| 29 | 6 | 14번째 자리 | 14 |
| 30 | 14 | 처음 나옴 | 0 |
계산 방법
- 1항수 n을 넣습니다. 0부터 n항까지 계산합니다.
- 2막대 그림에서 값(직전 항이 몇 걸음 전에 나왔는지)의 크기를 봅니다.
- 3표에서 각 항이 "처음 나온 값"인지 "몇 번째 자리에서 마지막으로 나왔는지"를 확인합니다.
자주 묻는 질문
a(0)=0에서 시작해, 직전 항 a(n-1)을 봅니다. 그 값이 그 전에 한 번도 나온 적 없으면 a(n)=0이고, k번째 자리에서 마지막으로 나온 적 있으면 a(n)=(n-1)-k(그 자리와의 간격)입니다.
다음 항을 정할 때 필요한 정보가 딱 그것뿐이기 때문입니다. 값마다 최근 등장 위치를 해시맵에 담아 두면, 매 단계마다 배열 전체를 뒤지지 않고 O(1)로 조회할 수 있습니다. 이 계산기는 O(n²)로 배열을 매번 훑는 무식한 방법과 대조해 같은 결과가 나오는 것을 확인했습니다.
a(n)의 값을 정한 "다음에" 방금 본 자리를 기억해야 합니다. 순서를 뒤집어 먼저 기억부터 갱신하면, 직전 항이 방금 자기 자신이 나온 자리를 자기 자신의 "이전" 위치로 착각해 간격이 항상 0으로 고정되고, 그 뒤로는 영원히 0만 나오는 틀린 수열이 됩니다.
둘 다 "자기서술 수열"로 묶이지만 규칙은 전혀 다릅니다. 레카만 수열(edu/recaman-sequence)은 뺄셈·덧셈 중 하나를 골라 새로운 위치로 점프하는 수열이고, 반 에크 수열은 과거의 자신을 돌아봐 값이 마지막으로 나온 간격을 재는 수열입니다.
될 수 없습니다. 값이 항상 "자리 사이의 간격"이라 0 이상의 정수로만 나옵니다.
전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.
알아두면 좋은 점
- 항수는 400까지 계산합니다.
- 막대 그림·수열 목록·표는 화면에 다 그리기 어려워 일부(각각 전체·80개·30항)까지만 보여 줍니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 3일 · 결과는 참고용 추정치입니다.