Advertisement
max_tre

calendario palio

Jun 28th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.22 KB | None | 0 0
  1. import itertools
  2.  
  3. #calcetto
  4. partite=['AC','AD','BC','BD','BE','CE','DE']
  5. permstuple=list(itertools.permutations(partite))
  6. perms=[]
  7. for p in permstuple:
  8.     perms.append(list(p))
  9. for p in perms:
  10.     p.insert(0,'AE')
  11.     p.insert(0,'CD')
  12.     p.insert(0,'AB')
  13. calcetto=[]
  14. for p in perms:
  15.     buona=True
  16.     for i in range(len(p)-1):
  17.         if set(p[i])&set(p[i+1])!=set():
  18.             buona=False
  19.             break
  20.     if buona==True:
  21.         calcetto.append(p)
  22.  
  23. #pallavolo
  24. partite=['AB','AC','AD','AE','BC','BD','BE','CD','CE','DE']
  25. permstuple=list(itertools.permutations(partite))
  26. perms=[]
  27. for p in permstuple:
  28.     perms.append(list(p))
  29. calendario=[]
  30. for p in perms:
  31.     for c in calcetto:
  32.         buona=True
  33.         sovrapposizioni=0
  34.         for i in range(len(p)):
  35.             if set(p[i])&set(c[i])!=set():
  36.                 sovrapposizioni+=1
  37.             if i!=len(p)-1 and set(p[i])&set(p[i+1])!=set():
  38.                 buona=False
  39.                 break
  40.         if buona==True and sovrapposizioni<=5:
  41.             calendario.append([sovrapposizioni,c,p])
  42.  
  43. for x in calendario:
  44.     if x[0]==min(calendario)[0]:
  45.         print x[1]
  46.         print x[2]
  47.         print
  48.  
  49. '''
  50. OUTPUT OTTENUTO (tutti i calendari hanno 2 sovrapposizioni):
  51.  
  52. ['AB', 'CD', 'AE', 'BD', 'CE', 'AD', 'BE', 'AC', 'DE', 'BC']
  53. ['AC', 'BE', 'CD', 'AE', 'BD', 'CE', 'AB', 'DE', 'BC', 'AD']
  54.  
  55. ['AB', 'CD', 'AE', 'BD', 'CE', 'AD', 'BC', 'DE', 'AC', 'BE']
  56. ['AC', 'BE', 'CD', 'AE', 'BD', 'CE', 'AD', 'BC', 'DE', 'AB']
  57.  
  58. ['AB', 'CD', 'AE', 'BC', 'DE', 'AC', 'BE', 'AD', 'CE', 'BD']
  59. ['AD', 'BE', 'CD', 'AE', 'BC', 'DE', 'AB', 'CE', 'BD', 'AC']
  60.  
  61. ['AB', 'CD', 'AE', 'BC', 'DE', 'AC', 'BD', 'CE', 'AD', 'BE']
  62. ['AD', 'BE', 'CD', 'AE', 'BC', 'DE', 'AC', 'BD', 'CE', 'AB']
  63.  
  64. ['AB', 'CD', 'AE', 'BD', 'CE', 'AD', 'BE', 'AC', 'DE', 'BC']
  65. ['BC', 'AE', 'BD', 'CE', 'AD', 'BE', 'AC', 'DE', 'AB', 'CD']
  66.  
  67. ['AB', 'CD', 'AE', 'BD', 'CE', 'AD', 'BC', 'DE', 'AC', 'BE']
  68. ['BC', 'AE', 'BD', 'CE', 'AD', 'BE', 'CD', 'AB', 'DE', 'AC']
  69.  
  70. ['AB', 'CD', 'AE', 'BC', 'DE', 'AC', 'BE', 'AD', 'CE', 'BD']
  71. ['BD', 'AE', 'BC', 'DE', 'AC', 'BE', 'AD', 'CE', 'AB', 'CD']
  72.  
  73. ['AB', 'CD', 'AE', 'BC', 'DE', 'AC', 'BD', 'CE', 'AD', 'BE']
  74. ['BD', 'AE', 'BC', 'DE', 'AC', 'BE', 'CD', 'AB', 'CE', 'AD']
  75.  
  76. ['AB', 'CD', 'AE', 'BD', 'CE', 'AD', 'BE', 'AC', 'DE', 'BC']
  77. ['CD', 'AE', 'BC', 'DE', 'AB', 'CE', 'AD', 'BE', 'AC', 'BD']
  78.  
  79. ['AB', 'CD', 'AE', 'BD', 'CE', 'AD', 'BC', 'DE', 'AC', 'BE']
  80. ['CD', 'AE', 'BC', 'DE', 'AB', 'CE', 'BD', 'AC', 'BE', 'AD']
  81.  
  82. ['AB', 'CD', 'AE', 'BC', 'DE', 'AC', 'BE', 'AD', 'CE', 'BD']
  83. ['CD', 'AE', 'BD', 'CE', 'AB', 'DE', 'AC', 'BE', 'AD', 'BC']
  84.  
  85. ['AB', 'CD', 'AE', 'BC', 'DE', 'AC', 'BD', 'CE', 'AD', 'BE']
  86. ['CD', 'AE', 'BD', 'CE', 'AB', 'DE', 'BC', 'AD', 'BE', 'AC']
  87.  
  88. ['AB', 'CD', 'AE', 'BD', 'CE', 'AD', 'BE', 'AC', 'DE', 'BC']
  89. ['CE', 'AB', 'CD', 'BE', 'AD', 'BC', 'AE', 'BD', 'AC', 'DE']
  90.  
  91. ['AB', 'CD', 'AE', 'BD', 'CE', 'AD', 'BC', 'DE', 'AC', 'BE']
  92. ['CE', 'AB', 'CD', 'BE', 'AD', 'BC', 'DE', 'AC', 'BD', 'AE']
  93.  
  94. ['AB', 'CD', 'AE', 'BC', 'DE', 'AC', 'BE', 'AD', 'CE', 'BD']
  95. ['DE', 'AB', 'CD', 'BE', 'AC', 'BD', 'AE', 'BC', 'AD', 'CE']
  96.  
  97. ['AB', 'CD', 'AE', 'BC', 'DE', 'AC', 'BD', 'CE', 'AD', 'BE']
  98. ['DE', 'AB', 'CD', 'BE', 'AC', 'BD', 'CE', 'AD', 'BC', 'AE']
  99. '''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement