소개
Dobble / Spot 사람들이 가장 짧은 시간에 한 쌍의 카드에서 동일한 기호를 찾아서 표시하고 다음 쌍으로 이동해야하는 카드 게임입니다. 각 카드에는 여러 개의 기호 (일반 버전에서는 8)가 있지만 각 카드 쌍마다 정확히 하나의 기호가 있습니다.
도전
하나의 카드에 주어진 기호 세트 (단일 ASCII 문자)와 기호 수를 가진 프로그램을 작성하면 각 카드에 대한 기호가있는 출력 목록 카드가 생성됩니다. 분명히 동등한 조합이 많이 있으며, 프로그램은 주어진 입력에 대해 가장 많은 양의 카드를 생성하는 조합을 작성해야합니다.
코드 골프이므로 코드가 짧을수록 좋습니다.
가장 복잡한 경우에 우주의 열사병이 발생하기 전에 계산이 완료되면 좋을 것이다.
입력
기능 / stdin에 대한 두 가지 주장 (선택)
먼저 'ABCDE'또는 [ 'A', 'B', 'C', 'D', 'E']와 같은 기호 모음입니다. 형식, 문자열, 세트, 목록, 스트림 등 원하는 형식을 선택하십시오. , 또는 선택한 언어에 대한 관용적 표현. 문자는 [A-Za-z0-9] 세트에서 제공되며, 중복되지 않습니다 (따라서 입력 심볼 세트의 최대 크기는 62 임). 따라서 6- 심볼 케이스에 대해서도 "yX4i9A"를 얻을 수 있습니다.
두 번째 인수는 정수이며 단일 카드의 기호 양을 나타냅니다. 심볼 세트의 크기보다 <=입니다.
산출
줄 바꿈으로 구분 된 여러 줄을 인쇄하십시오. 각 줄에는 단일 카드의 기호가 들어 있습니다.
예
ABC
2
>>>>
AB
BC
AC
또는
ABCDEFG
3
>>>>
ABC
BDE
CEF
BFG
AEG
CDG
ADF
또는
ABCDE
4
>>>>
ABCD
힌트
- 생성 된 카드 수는 고유 기호 수보다 클 수 없으며 여러 조합에서 상당히 작습니다.
- 문제의 수학 측면에서 도움이 필요한 경우 일부 수학 배경 을 읽을 수 있습니다.
이것은 첫 번째 코드 골프 도전이므로 서식 / 스타일과 관련하여 가능한 문제를 용서하십시오-의견을 지적하면 오류를 수정하려고합니다.
('abcdefghijklmnopqrstu', 5)
-> ['abcde', 'afghi', 'ajklm', 'anopq', 'arstu', 'bfjnr', 'bgkpt', 'bhlou', 'bimqs', 'cfkqu', 'cgjos', 'chmpr', 'cilnt', 'dfmot', 'dglqr', 'dhkns', 'dijpu', 'eflps', 'egmnu', 'ehjqt', 'eikor']
또는 다른 21 카드 작업 솔루션. (이것은 순서 4의 투영 유한 평면입니다.)