Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # восьмизначные коды всех 105 конфигураций
- ways_8digit = ['12345678', '12345768', '12345867', '12354678', '12354768', '12354867', '12364578',
- '12364758', '12364857', '12374568', '12374658', '12374856', '12384567', '12384657',
- '12384756', '13245678', '13245768', '13245867', '13254678', '13254768', '13254867',
- '13264578', '13264758', '13264857', '13274568', '13274658', '13274856', '13284567',
- '13284657', '13284756', '14235678', '14235768', '14235867', '14253678', '14253768',
- '14253867', '14263578', '14263758', '14263857', '14273568', '14273658', '14273856',
- '14283567', '14283657', '14283756', '15234678', '15234768', '15234867', '15243678',
- '15243768', '15243867', '15263478', '15263748', '15263847', '15273468', '15273648',
- '15273846', '15283467', '15283647', '15283746', '16234578', '16234758', '16234857',
- '16243578', '16243758', '16243857', '16253478', '16253748', '16253847', '16273458',
- '16273548', '16273845', '16283457', '16283547', '16283745', '17234568', '17234658',
- '17234856', '17243568', '17243658', '17243856', '17253468', '17253648', '17253846',
- '17263458', '17263548', '17263845', '17283456', '17283546', '17283645', '18234567',
- '18234657', '18234756', '18243567', '18243657', '18243756', '18253467', '18253647',
- '18253746', '18263457', '18263547', '18263745', '18273456', '18273546', '18273645']
- # преобразуем 8-значные коды в 4-значные
- ways_4digit = []
- for i in range(len(ways_8digit)):
- # первый символ кода
- sym1 = min(8-abs(int(ways_8digit[i][0]) - int(ways_8digit[i][1])), abs(int(ways_8digit[i][0]) - int(ways_8digit[i][1])))
- # второй символ кода
- sym2 = min(8-abs(int(ways_8digit[i][3]) - int(ways_8digit[i][2])), abs(int(ways_8digit[i][3]) - int(ways_8digit[i][2])))
- # третий символ кода
- sym3 = min(8-abs(int(ways_8digit[i][5]) - int(ways_8digit[i][4])), abs(int(ways_8digit[i][5]) - int(ways_8digit[i][4])))
- # четвёртый символ кода
- sym4 = min(8-abs(int(ways_8digit[i][7]) - int(ways_8digit[i][6])), abs(int(ways_8digit[i][7]) - int(ways_8digit[i][6])))
- ways_4digit.append(str(sym1)+str(sym2)+str(sym3)+str(sym4))
- #print(ways_4digit)
- # теперь найдём все варианты с учётом поворотов и зеркальных отражений
- unique_ways = set()
- for i in range(len(ways_4digit)):
- # запишем в стандартный вид
- num_way = sorted(list(map(int, ways_4digit[i])))
- standard_way = str(num_way[0]) + str(num_way[1]) + str(num_way[2]) + str(num_way[3])
- unique_ways.add(standard_way)
- print("Уникальных вариантов {}".format(len(unique_ways)))
- print(list(unique_ways))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement