Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def R(L1, L2):
- if len(L1)!=len(L2):
- return False
- ratio = []
- for i in range(len(L1)):
- if L1[i] == 0:
- if L2[i] != 0:
- return False
- else:
- ratio.append(L1[i]*1.0/L2[i])
- #---------------
- if len(ratio) == 0 or len(ratio) == 1:
- return True
- for i in range(1, len(ratio)):
- if ratio[i] != ratio[0]:
- return False
- return True
- def is_self_similar(L):
- for i in range(2, len(L)):
- if len(L)%i == 0 and len(L)%2 == i%2:
- L_mid = []
- L_part = []
- for j in range(len(L)/i):
- SUM = 0
- for k in range(i):
- SUM += L[i*j+k]
- L_part.append(SUM)
- a = len(L)/i
- if len(L)%2 == 1:
- for j in range((len(L)/2)-(a-1)/2, (len(L)/2)+(a+1)/2):
- L_mid.append(L[j])
- else:
- for j in range(int((len(L)/2 -0.5)-(a-1)/2), int((len(L)/2 -0.5)+(a+3)/2)):
- L_mid.append(L[j])
- if R(L_mid, L_part):
- return True
- return False
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement