유한 한 양의 정수 세트가 있다고 상상해 봅시다. 이 세트는 세트에 존재하는 각 정수가 스캔 트론 또는 펀치 카드 처럼 채워지는 점의 선으로 표시 될 수 있습니다 . 예를 들어 세트 {1,3,4,6}
는 다음과 같이 표현 될 수 있습니다.
*.**.*
*
는 우리 세트의 멤버를 .
나타내며 그가 설정 한 멤버가 아닌 정수를 나타냅니다.
이 세트에는 "인자"가 있습니다. x를 x의 복사본으로 만들 수있는 경우 x는 y의 계수입니다. 보다 엄격하게 요인에 대한 정의는 다음과 같습니다.
- y가 여러 개의 분리 된 집합 의 합집합 인 경우에만 x는 y의 인수입니다 . 모두 오프셋이있는 x입니다.
우리는 두 개의 사본을 종합 하여 명확하게 구성했기 때문에 *.*
한 가지 요인 을 *.**.*
부를 것입니다 *.*
.
*.**.*
------
*.*...
...*.*
요인 우리는 또한 그 말을, 끝으로 종료 할 필요는 없습니다 *.*
의 요인이다*.*.*.*
*.*.*.*
-------
*.*....
....*.*
요인도 겹칠 수 있습니다. 이것은 *.*
또한****
****
----
*.*.
.*.*
그러나 숫자는 한 번 이상 인자로 커버 될 수 없습니다. 예를 들어 의 요인 *.*
이 아닙니다*.*.*
.
보다 복잡한 예는 다음과 같습니다.
*..*.**..***.*.*
이것은 *..*.*
요인이 있습니다. 아래에서 세 개의 인스턴스를 정렬 한 것을 볼 수 있습니다 *..*.*
.
*..*.**..***.*.*
----------------
*..*.*..........
......*..*.*....
..........*..*.*
직무
합리적인 표현으로 세트가 주어지면 입력 요소 인 모든 세트가 출력됩니다.
임의의 값으로 색인을 작성할 수 있습니다 (즉, 입력에 존재할 수있는 가장 작은 숫자를 선택할 수 있음). 입력 세트에 항상 가장 작은 값이 포함되어 있다고 가정 할 수도 있습니다.
이것은 코드 골프 질문이므로 가능한 한 적은 바이 트로이 작업을 수행해야합니다.
테스트 사례
이 테스트 사례는 직접 작성했으며 큰 경우 실수가 두 개있을 수 있습니다.
* -> *
*.*.* -> *, *.*.*
*.*.*.* -> *, *.*, *...*, *.*.*.*
****** -> *, **, *..*, ***, *.*.*, ******
*..*.**..***.*.* -> *, *..*.*, *.....*...*, *..*.**..***.*.*
*...*****.**.** -> *, *...**.**, *.....*, *...*****.**.**
*.*.*
= x+x^2+x^4
다음 1+x+x^2
= ***
오른쪽 제수 것입니까? x+x^2+x^4 = (1-x+x^2)(1+x+x^2)
*
같은 집합 표현하는 요소로 나열됩니다 *.
또는 *..
.
[1,3,5,7]
for*.*.*.*
) 으로 가져 가면 정렬 된 것으로 가정 할 수 있습니까?