Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #see http://codegolf.stackexchange.com/a/90883/46756
- #define a working list to fill with representations which evaluate
- #to given values, and parameters for filling that list.
- m=11111 #bound for list
- R=range(0,m) #list for representations
- U=range(0,m) #code to see which formula was used
- R[1]="()" #intiallize list
- R[2]="()()"
- l=2 #current least new represtation
- #define a method to add a representation for a value to the list
- def a(v,r,u):
- if v>0 and v<m:
- if isinstance(R[v],int) or len(r)<len(R[v]):
- R[v]=r
- U[v]=-u
- if v<R[0]:
- R[0]=v
- #define a sumation function
- def s(v,k):
- S=0
- while v>0:
- S+=v
- v-=k
- return S
- #shorthand for recurring brainflak structures
- p=lambda r:"("+r+")" #store
- w=lambda r:"{({}["+r+"])}{}" #sum with increment
- def q(r,v): #multiply by v
- for i in range(1,v):
- r="("+r+")"
- for i in range(1,v):
- r+="{}"
- return r
- def e(r,v,k): #multiply by expontent v^k
- for i in range(0,k):
- r=q(r,v)
- return r
- #fill the array with new representations formed from existing
- #representations, if shorter.
- while l<m:
- R[0]=l+1
- #multiplications
- a(l*2,q(R[l],2),1)
- a(l*3,q(R[l],3),2)
- a(l*5,q(R[l],5),3)
- a(l*7,q(R[l],7),4)
- a(l*11,q(R[l],11),5) #not found
- a(l*13,q(R[l],13),6) #not found
- for i in range(1,l):
- #addition
- a(l+i,R[l]+R[i],7)
- #subtraction
- a(l-i,R[l]+"["+R[i]+"]",8)
- if 2*i<=l and l%i==0:#2*i<=l should save some time, is not golfed
- t=s(l-i,i)
- #sumations
- a(s(l,i),p(R[l])+w(R[i]),9)
- #multiples of sums, plus
- a(l+2*t,p(R[l])+q(w(R[i]),2),11)
- a(l+4*t,p(R[l])+e(w(R[i]),2,2),12)
- a(l+8*t,p(R[l])+e(w(R[i]),2,3),13)
- a(l+16*t,p(R[l])+e(w(R[i]),2,4),14)
- a(l+32*t,p(R[l])+e(w(R[i]),2,5),15)
- a(l+64*t,p(R[l])+e(w(R[i]),2,6),16)
- a(l+128*t,p(R[l])+e(w(R[i]),2,7),17)
- a(l+256*t,p(R[l])+e(w(R[i]),2,8),18) #not found
- a(l+512*t,p(R[l])+e(w(R[i]),2,9),19) #not found
- a(l+1024*t,p(R[l])+e(w(R[i]),2,10),20) #not found
- a(l+2048*t,p(R[l])+e(w(R[i]),2,11),21) #not found
- a(l+4096*t,p(R[l])+e(w(R[i]),2,12),22) #not found
- a(l+3*t,p(R[l])+q(w(R[i]),3),23)
- a(l+9*t,p(R[l])+e(w(R[i]),3,2),24)
- a(l+27*t,p(R[l])+e(w(R[i]),3,3),25)
- a(l+81*t,p(R[l])+e(w(R[i]),3,4),26) #not found
- a(l+243*t,p(R[l])+e(w(R[i]),3,5),27) #not found
- a(l+729*t,p(R[l])+e(w(R[i]),3,6),28) #not found
- a(l+5*t,p(R[l])+q(w(R[i]),5),29)
- a(l+25*t,p(R[l])+e(w(R[i]),5,2),30) #not found
- a(l+125*t,p(R[l])+e(w(R[i]),5,3),31) #not found
- a(l+7*t,p(R[l])+q(w(R[i]),7),32) #not found
- a(l+49*t,p(R[l])+e(w(R[i]),7,2),33) #not found
- a(l+11*t,p(R[l])+q(w(R[i]),11),34) #not found
- a(l+6*t,p(R[l])+q(q(w(R[i]),3),2),35)
- a(l+10*t,p(R[l])+q(q(w(R[i]),5),2),36)
- a(l+14*t,p(R[l])+q(q(w(R[i]),7),2),37) #not found
- a(l+22*t,p(R[l])+q(q(w(R[i]),11),2),38) #not found
- a(l+15*t,p(R[l])+q(q(w(R[i]),5),3),39)
- a(l+21*t,p(R[l])+q(q(w(R[i]),7),3),40) #not found
- a(l+33*t,p(R[l])+q(q(w(R[i]),11),3),41) #not found
- a(l+35*t,p(R[l])+q(q(w(R[i]),7),5),42) #not found
- a(l+55*t,p(R[l])+q(q(w(R[i]),11),5),43) #not found
- a(l+77*t,p(R[l])+q(q(w(R[i]),11),7),44) #not found
- a(l+12*t,p(R[l])+q(q(q(w(R[i]),3),2),2),45)
- a(l+18*t,p(R[l])+q(q(q(w(R[i]),3),3),2),46)
- a(l+20*t,p(R[l])+q(q(q(w(R[i]),5),2),2),47)
- a(l+30*t,p(R[l])+q(q(q(w(R[i]),5),3),2),48) #not found
- a(l+50*t,p(R[l])+q(q(q(w(R[i]),5),5),2),49) #not found
- a(l+45*t,p(R[l])+q(q(q(w(R[i]),5),3),3),50) #not found
- a(l+75*t,p(R[l])+q(q(q(w(R[i]),5),5),3),51) #not found
- a(l+28*t,p(R[l])+q(q(q(w(R[i]),7),2),2),52) #not found
- a(l+42*t,p(R[l])+q(q(q(w(R[i]),7),3),2),53) #not found
- a(l+70*t,p(R[l])+q(q(q(w(R[i]),7),5),2),54) #not found
- a(l+98*t,p(R[l])+q(q(q(w(R[i]),7),7),2),55) #not found
- a(l+63*t,p(R[l])+q(q(q(w(R[i]),7),3),3),56) #not found
- a(l+105*t,p(R[l])+q(q(q(w(R[i]),7),5),3),57) #not found
- a(l+147*t,p(R[l])+q(q(q(w(R[i]),7),7),3),58) #not found
- a(l+175*t,p(R[l])+q(q(q(w(R[i]),7),5),5),59) #not found
- a(l+245*t,p(R[l])+q(q(q(w(R[i]),7),7),5),60) #not found
- a(l+44*t,p(R[l])+q(q(q(w(R[i]),11),2),2),61) #not found
- a(l+66*t,p(R[l])+q(q(q(w(R[i]),11),3),2),62) #not found
- a(l+99*t,p(R[l])+q(q(q(w(R[i]),11),3),3),63) #not found
- a(l+24*t,p(R[l])+q(q(q(q(w(R[i]),3),2),2),2),64)
- a(l+36*t,p(R[l])+q(q(q(q(w(R[i]),3),3),2),2),65)
- a(l+54*t,p(R[l])+q(q(q(q(w(R[i]),3),3),3),2),66) #not found
- a(l+40*t,p(R[l])+q(q(q(q(w(R[i]),5),2),2),2),67)
- a(l+60*t,p(R[l])+q(q(q(q(w(R[i]),5),3),2),2),68) #not found
- a(l+90*t,p(R[l])+q(q(q(q(w(R[i]),5),3),3),2),69) #not found
- a(l+135*t,p(R[l])+q(q(q(q(w(R[i]),5),3),3),3),70) #not found
- a(l+56*t,p(R[l])+q(q(q(q(w(R[i]),7),2),2),2),71) #not found
- l=R[0]
- #return final representation of a value
- f=lambda v:p(R[v])
- #THIS ENDS THE GOLFED REPRESENTATION PART OF THE PROGRAM
- def isPrime(v):
- i=2
- while i*i<=v:
- if v%i==0:
- return False
- i+=1
- return True
- for i in range(1,m):
- #if isPrime(i):, while testing which formula are used, since
- #only the last formula used is shown we need to see all numbers
- print str(U[i])+" "+f(i)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement