벨트에서 아이템이 지나가는 양 등 생산량에 관련된 값을 측정하고 싶은 경우가 있음

이때 한 틱의 결과만 얻어서 사용한다면 결과가 매우 들쭉날쭉해서 써먹기 힘듬

따라서 과거의 여러 틱의 결과들을 합산해 그 평균을 사용하게 됨


이를 구현할 수 있는 가장 간단한 회로는 누적합을 구하다가 일정 틱마다 초기화시키는 회로임

하지만 이 회로는 초기화된 직후에 측정값의 신뢰성이 좋지 못하며 신뢰성이 계속 변화한다는 단점이 있음

그렇다고 과거의 값을 전부 기억하는 방법을 쓰려고 하니 상당히 많은(O(N)개의 메모리 셀) 조합기가 필요하게 됨

그래서 적은, 정확히는 일정 값 이하의 N에 대해 지난 N틱 동안의 누적합을 기억할 때 N에 상관없는 상수(O(1)개의 메모리 셀) 개의 조합기를 사용하는 회로가 있다면 좋을 것임


위 회로를 구현하는 방법을 다음과 같음

참고로 아마 N = 255임 (정확히는 게임 내 존재하는 신호의 종류 수에서 두세 개 빠진 양)


1 N틱을 주기로 1틱에 특정한 종류의 신호 하나를 1로 내보내고, 다음 틱엔 또 다른 신호를 1 내보내고, .. 이런 회로를 만듬

2 [각각 * 벨트아이템 = 각각] 조합기로 벨트의 산출량과 1의 출력값을 곱함

3 곱한 결과를 저장함, 저장하는 조합기는 [각각 > 0 이면 각각 출력]의 되먹임 조합기.

  - 이때 2에서 벨트아이템의 제곱이 들어갈텐데 이걸 상쇄하도록 3에 벨트아이템이 -2억 정도로 지속적으로 공급됨

4 1의 출력값에 -20억을 곱해 2보다 1틱 먼저 3에 더해주는 회로를 만듬 (3에 저장된 값을 지우는 역할)

5 2와 3의 출력을 받아 [각각 + 0 = 벨트아이템] 을 만듬

6 5의 결과를 받아 N으로 나눠 사용



구현은 없음 누가 해줘..