BuK/IIm20/Vorlesung 6 Lemke

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Python</language>
== Übungsaufgabe S. 20 ==

=== Indexlistenfindefunktion / Lösung des PCP ===

<code id="608c28d240783">
from itertools import product

def is_valid_index_sequence(
	sequence: list[int], pair_list: list[tuple]
):
	word_x = ''
	word_y = ''
	for index in sequence:
		word_x += pair_list[index][0]
		word_y += pair_list[index][1]
		
	return word_x == word_y
	
def find_index_sequence(pair_list, max_n):
	indexes = [i for i in range(len(pair_list))]
	for n in range(1, max_n):
		sequences = [x for x in product(indexes, repeat=n)]
		for s in sequences:
			if is_valid_index_sequence(list(s), pair_list):
				return s
</code>

<run id="608c28d2407e2">
print(find_index_sequence([('1', '101'), ('10', '00'), ('011', '11')], 20))
</run>