다른 문자의 문자열과 숫자 n이 주어지면 해당 문자를 사용하여 길이가 1에서 n까지의 반복 된 모든 정렬 조합을 생성하십시오.
그것을 정의하는 또 다른 방법은 주어진 문자를 문자 수의 기수 (기수)에서 “사용자 정의”자릿수로 보는 것입니다. 그러면 프로그램은 그 기저에서 1에서 n 자릿수의 모든 “숫자”를 생성해야합니다. “제로”도 포함되어 있습니다.
조합은 길이 (1 문자, 2 등) 순서로 정렬해야하지만, 순서는 상관 없습니다. 입력 및 출력을 처리하는 가장 편리한 방법을 선택할 수 있습니다. 가장 짧은 코드가 승리합니다.
예 :
ab, 3
-> a,b,aa,ab,ba,bb,aaa,aab,aba,baa,abb,bab,bba,bbb
0123456789, 2
->0,1,2,3,4,5,6,7,8,9,00,01,...,09,10,11,...,99
답변
APL (Dyalog Unicode) , 13 바이트 SBCS
⊃,/,¨∘.,\⎕⍴⊂⍞
스캔을 사용하는 기회를 놓치지 마십시오 🙂
“숫자”문자열을 입력 한 다음 n
]box
TIO 에서 활성화하는 방법을 알려 주신 @ Adám에게 감사드립니다.
답변
파이썬 2, 56 바이트
n
최대 길이이며 s
문자 목록 일 것으로 예상됩니다. n = 0 또는 빈 문자 목록이 유효한 입력 인지는 확실하지 않지만이 함수는 입력을 올바르게 처리합니다.
f=lambda s,n:n*s and s+[x+c for x in f(s,n-1)for c in s]
답변
J, 41 자
f=.}:@;@({@(,&(<',')@(]#<@[))"1 0>:@i.@])
'ab' f 3
a,b,aa,ab,ba,bb,aaa,aab,aba,abb,baa,bab,bba,bbb
답변
APL (31)
{,/⍺∘{↓⍉⍺[1+(⍵⍴⍴⍺)⊤⍳⍵*⍨⍴⍺]}¨⍳⍵}
사용법 : 왼쪽 인수는 문자열이고 오른쪽 인수는 숫자입니다.
'ab'{,/⍺∘{↓⍉⍺[1+(⍵⍴⍴⍺)⊤⍳⍵*⍨⍴⍺]}¨⍳⍵}3
b a ab ba bb aa aab aba abb baa bab bba bbb aaa
출력은 길이별로 정렬되지만 길이 그룹 내에서 왼쪽으로 하나씩 이동하면 가장 쉽습니다.
설명:
,/⍺∘{
…}¨⍳⍵
: 1..⍵의 경우 ⍺에 함수를 적용하고 결과를 결합합니다.(⍵⍴⍴⍺)⊤⍳⍵*⍨⍴⍺
: 1에서 (⍵ = (현재 길이)) ^ (⍴⍺ = (문자 수))까지의 각 숫자에 대해 ⍵ 숫자를 사용하여 기본 base로 변환하십시오.1+
: 배열이 1 인덱싱되므로 하나를 추가하십시오.⍺[
…]
: 문자열의 인덱스로 사용하십시오.↓⍉
: 행렬을 회전하여 ‘숫자’가 열 대신 행에있는 다음 행렬을 행으로 나눕니다.
답변
하스켈, 34 자
x%n=do k<-[1..n];mapM(\_->x)[1..k]
리스트 모나드의 간단한 사용. 유일한 실제 골프는 수입을 요구 mapM
하는 더 관용적 인 (그리고 더 짧은) 대신 사용 replicateM
하는 것 Control.Monad
입니다.
용법
> "ab" % 3
["a","b","aa","ab","ba","bb","aaa","aab","aba","abb","baa","bab","bba","bbb"]
답변
파이썬, 97 94
from itertools import*
s,n=input()
L=t=[]
exec"t=t+[s];L+=map(''.join,product(*t));"*n
print L
t=t+[s]
t+=[s]
L과 t가 같은 목록을 가리 키기 때문에 단축 할 수 없습니다 .
입력: 'ab', 3
산출:
['a', 'b', 'aa', 'ab', 'ba', 'bb', 'aaa', 'aab', 'aba', 'abb', 'baa', 'bab', 'bb
a', 'bbb']
답변
매스 매 티카 29 19 28
Join@@(i~Tuples~#&/@Range@n)
용법
i={a, 4, 3.2};n=3;
Join@@(i~Tuples~#&/@Range@n)
{{a}, {4}, {3.2}, {a, a}, {a, 4}, {a, 3.2}, {4, a}, {4, 4}, {4, 3.2}, { 3.2, a}, {3.2, 4}, {3.2, 3.2}, {a, a, a}, {a, a, 4}, {a, a, 3.2}, {a, 4, a}, { a, 4, 4}, {a, 4, 3.2}, {a, 3.2, a}, {a, 3.2, 4}, {a, 3.2, 3.2}, {4, a, a}, {4, a, 4}, {4, a, 3.2}, {4, 4, a}, {4, 4, 4}, {4, 4, 3.2}, {4, 3.2, a}, {4, 3.2, 4}, {4, 3.2, 3.2}, {3.2, a, a}, {3.2, a, 4}, {3.2, a, 3.2}, {3.2, 4, a}, {3.2, 4, 4} , {3.2, 4, 3.2}, {3.2, 3.2, a}, {3.2, 3.2, 4}, {3.2, 3.2, 3.2}}