Advertisement
B4rr

Untitled

May 16th, 2018
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.54 KB | None | 0 0
  1.  
  2. # coding: utf-8
  3.  
  4. # In[1]:
  5.  
  6. def SimpD(_f1,_f2,_g1,_g2,_m1,_m2):
  7.     s=0
  8.     for i in range(1,_m1+1):
  9.         s+=binomial(_f1[i],2)+binomial(_f2[i]-_f1[i],2)+binomial(_m2-_f2[i],2)
  10.     for j in range(1,_m2+1):
  11.         s+=binomial(_g1[j],2)+binomial(_g2[j]-_g1[j],2)+binomial(_m1-_g2[j],2)
  12.     return(binomial(_m1+_m2,3)-binomial(_m1,3)-binomial(_m2,3)-s)
  13.  
  14.  
  15. # In[2]:
  16.  
  17. def g12(_f1,_f2,_m1,_m2):
  18.     _g1=[0]+[max(i for i in range(_m1+1) if _f2[i]<j) for j in range(1,_m2+1)]
  19.     _g2=[0]+[max(i for i in range(_m1+1) if _f1[i]<j) for j in range(1,_m2+1)]
  20.     return [_g1,_g2]
  21.  
  22.  
  23. # In[3]:
  24.  
  25. def All_Increasing_Sorted_Function_Pairs(_m1,_m2L,_m2U):
  26.     if _m1==0: return[[[0],[0]]]
  27.     return [[_f1+[i],_f2+[j]]
  28.             for [_f1,_f2] in All_Increasing_Sorted_Function_Pairs(_m1-1,_m2L,_m2U)
  29.             for i in range(max(_f1),_m2U+1)
  30.             for j in range(max(_f2+[i]),_m2U+1)]
  31.    
  32.  
  33.  
  34. # In[ ]:
  35.  
  36. N=11
  37. OptSigma=-1
  38. Optm1=0
  39. Optm2=N
  40. Opt=set()
  41. for m1 in range(N+1):
  42.     m2=N-m1
  43.     for [f1,f2] in All_Increasing_Sorted_Function_Pairs(m1,0,m2):
  44.         [g1,g2]=g12(f1,f2,m1,m2)
  45.         #print (f1,f2,g1,g2)
  46.          
  47.         sigma=SimpD(f1,f2,g1,g2,m1,m2)
  48.         if sigma==OptSigma:
  49.             if not ((f1,f2,g1,g2,m1,m2) in Opt):
  50.                 Opt+=[(f1,f2,g1,g2,m1,m2)]
  51.                 NOpt+=1
  52.         if sigma>OptSigma:
  53.             Opt=[(f1,f2,g1,g2,m1,m2)]
  54.             OptSigma=sigma
  55.             NOpt=1
  56.        
  57.            
  58.  
  59.  
  60. # In[70]:
  61.  
  62. print NOpt
  63.  
  64.  
  65. # In[71]:
  66.  
  67. Opt
  68.  
  69.  
  70. # In[49]:
  71.  
  72. print OptSigma
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement