Advertisement
magneto903

tour4_1_2

Jun 28th, 2020
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.95 KB | None | 0 0
  1. # восьмизначные коды всех 105 конфигураций
  2. ways_8digit = ['12345678', '12345768', '12345867', '12354678', '12354768', '12354867', '12364578',
  3.                '12364758', '12364857', '12374568', '12374658', '12374856', '12384567', '12384657',
  4.                '12384756', '13245678', '13245768', '13245867', '13254678', '13254768', '13254867',
  5.                '13264578', '13264758', '13264857', '13274568', '13274658', '13274856', '13284567',
  6.                '13284657', '13284756', '14235678', '14235768', '14235867', '14253678', '14253768',
  7.                '14253867', '14263578', '14263758', '14263857', '14273568', '14273658', '14273856',
  8.                '14283567', '14283657', '14283756', '15234678', '15234768', '15234867', '15243678',
  9.                '15243768', '15243867', '15263478', '15263748', '15263847', '15273468', '15273648',
  10.                '15273846', '15283467', '15283647', '15283746', '16234578', '16234758', '16234857',
  11.                '16243578', '16243758', '16243857', '16253478', '16253748', '16253847', '16273458',
  12.                '16273548', '16273845', '16283457', '16283547', '16283745', '17234568', '17234658',
  13.                '17234856', '17243568', '17243658', '17243856', '17253468', '17253648', '17253846',
  14.                '17263458', '17263548', '17263845', '17283456', '17283546', '17283645', '18234567',
  15.                '18234657', '18234756', '18243567', '18243657', '18243756', '18253467', '18253647',
  16.                '18253746', '18263457', '18263547', '18263745', '18273456', '18273546', '18273645']
  17.  
  18. # преобразуем 8-значные коды в 4-значные
  19. ways_4digit = []
  20.  
  21. for i in range(len(ways_8digit)):
  22.     # первый символ кода
  23.     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])))
  24.     # второй символ кода
  25.     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])))
  26.     # третий символ кода
  27.     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])))
  28.     # четвёртый символ кода
  29.     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])))
  30.  
  31.  
  32.     ways_4digit.append(str(sym1)+str(sym2)+str(sym3)+str(sym4))
  33.  
  34. #print(ways_4digit)
  35.  
  36. # теперь найдём все варианты с учётом поворотов и зеркальных отражений
  37. unique_ways = set()
  38.  
  39. for i in range(len(ways_4digit)):
  40.     # запишем в стандартный вид
  41.     num_way = sorted(list(map(int, ways_4digit[i])))
  42.  
  43.     standard_way = str(num_way[0]) + str(num_way[1]) + str(num_way[2]) + str(num_way[3])
  44.  
  45.     unique_ways.add(standard_way)
  46.  
  47. print("Уникальных вариантов {}".format(len(unique_ways)))
  48. print(list(unique_ways))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement