이 과제에서는 두 가지 속성을 충족하는 모든 기능 (또는 전체 프로그램)을 구현해야합니다. 이러한 속성은 다음과 같습니다.
함수는 음이 아닌 정수 계수를 갖는 다항식에서 음이 아닌 정수까지의 주입 (가역) 함수 여야합니다. 이것은 두 개의 불평등 한 입력이 동일한 출력에 매핑 될 수 없음을 의미합니다.
함수는 입력에서 출력까지 총 "온 비트"수를 유지해야합니다. 즉, 다항식의 각 계수에서 1 비트를 계산할 경우 그 합은 출력의 이진 표현에서 1 비트의 수와 같아야합니다. 예를 들어,
9
인1001
이 2 가지도록 이진1
비트.
IO
음이 아닌 정수 다항식은 음수가 아닌 정수의 무한 목록과 동일하므로 특정 지점 이후에 모든 정수가 0이됩니다. 따라서, 다항식은 무한리스트 (이것은 아마도 바람직하지는 않지만) 또는리스트의 종료 후 내재 된 0을 갖는 유한리스트로 표현 될 수 있습니다.
다항식과 유한리스트의 주요 차이점은리스트 끝에 0을 추가하면리스트가 변경된다는 것입니다.
다항식 끝에 0을 추가해도 값이 변경되지 않습니다.
따라서 함수가 다항식을 입력으로 나타내는 유한 목록을 입력하는 경우 0을 추가하면 결과가 변경되지 않아야합니다.
다항식을 목록으로 표시 할 때 상수 항을 나타내는 첫 번째 또는 마지막 항목으로 다항식을 나타낼 수 있습니다. 예를 들어 다음 가능성 중 하나를 가질 수 있습니다.
첫 번째 경우, 목록 끝에 0을 추가하면 결과가 변경되지 않아야합니다. 두 번째 경우 목록 앞에 0을 추가 하면 결과가 변경되지 않습니다.
물론 당신의 언어가 다항식을 지원한다면 그것들을 입력으로 받아 들일 수 있습니다.
출력은 표준 방법을 통한 음이 아닌 정수 출력이어야합니다.
이것은 코드 골프 이므로 바이트 수가 적을수록 답이 바이트로 표시됩니다.
[]
또는[0]
유효한 입력?