Tôi muốn tìm một cách sạch sẽ và thông minh (trong python) để tìm tất cả các hoán vị của chuỗi 1s và 0s x ký tự. Lý tưởng này sẽ được nhanh chóng và không đòi hỏi quá nhiều làm lặp đi lặp lại ...tất cả hoán vị của một chuỗi nhị phân x bit dài
Vì vậy, cho x = 1 Tôi muốn: [ '0', '1'] x = 2 [ '00', '01 ', '10' , '11']
vv ..
Ngay bây giờ tôi có điều này, đó là chậm và dường như không thanh nha:
self.nbits = n
items = []
for x in xrange(n+1):
ones = x
zeros = n-x
item = []
for i in xrange(ones):
item.append(1)
for i in xrange(zeros):
item.append(0)
items.append(item)
perms = set()
for item in items:
for perm in itertools.permutations(item):
perms.add(perm)
perms = list(perms)
perms.sort()
self.to_bits = {}
self.to_code = {}
for x in enumerate(perms):
self.to_bits[x[0]] = ''.join([str(y) for y in x[1]])
self.to_code[''.join([str(y) for y in x[1]])] = x[0]
là bài tập về nhà này? – AShelly
Lưu ý rằng bạn không thực sự mô tả hoán vị. –
Tôi đang cảm thấy một luồng câu trả lời trên nền tảng mã. :-) – payne