Язык не важен, поясню на примере языка питон:
myarray=['a', 'b', 'c']
number=3
def myfunc(myarray, number): #при number = 3
newarray=[]
for s1 in myarray
for s2 in myarray
for s3 in myarray
newarray.append(s1+s2+s3)
return newarray
должен возвратить: aaa, aab, aac, aba, abb, abc, итд, Т.е. если number = 4, то все четырехзначные, что можно составить, если 5, то пятизначные и тд.
Как это сделать?
Ответ
from itertools import product
chars = 'abc'
print(list(product(chars, repeat=3)))
# [('a', 'a', 'a'), ('a', 'a', 'b'), ('a', 'a', 'c'), ...
Выходные данные уже преобразуй во что нужно.
Вот псевдо-код реализации product() из документации
def product(*args, repeat=1):
# product('ABCD', 'xy') --> Ax Ay Bx By Cx Cy Dx Dy
# product(range(2), repeat=3) --> 000 001 010 011 100 101 110 111
pools = [tuple(pool) for pool in args] * repeat
result = [[]]
for pool in pools:
result = [x+[y] for x in result for y in pool]
for prod in result:
yield tuple(prod)
Комментариев нет:
Отправить комментарий