킹머핀의 제작 일지
모듈러(%)를 쓰지 않고 정수를 구간 반복하는 방법 본문
x를 [m, n]에서 1씩 증가시키려면 x = m + (x + 1 - m) % n을 반복하면 된다.
그런데 궁금해졌다.
모듈러 연산자를 쓰지 않고도 같은 식을 만들 수 있는가?
단, 반복문이나 반복 수식(등비, 등차수열 같은)을 사용하지 않고. (사실 나눗셈도 자료구조상 반복이지만 감안)
이러한 기능의 함수(함수가 기능인가?)를 주기수열이라고 부른단다.
이번엔 딱히 '더 효율적인 코드'를 위해 고민하는 게 아니고, 이미 맨 위의 식을 적용했으며, 금방 찾을 수 있을 것 같아서 시도해보았다.
그리고 30분이 걸려 (많은 시행착오 끝에) 정확한 수식을 만들어냈다.
$$x = m + (x + 1 - m) * (1 - x / n)$$
해냈다! 단, x/n은 정수여야 함.
근데 이렇게 두고 보니 큰 차이는 없네..? ㅎㅎㅎ
그리고 여기 친구가 찾아준 다른 방식도 있다.
대체 이런 생각은 어떻게 해 내는 거야..?
&
'엔트리 > 심화' 카테고리의 다른 글
순환함수 이해하기 (0) | 2021.04.04 |
---|---|
MacOS) 에서 아나콘다를 사용하지 마세요 (0) | 2021.03.24 |
코랩) Flask 로컬 서버 접속하는 법 (0) | 2021.03.13 |
다층신경망과 CNN (0) | 2020.11.03 |
단층신경망에서 다층신경망으로 (0) | 2020.10.25 |