Skip to main content
deleted 3 characters in body
Source Link

memonization

def lattice(p1, p2): pair = (p1, p2) if pair in memo: return memo[pair] t1, t2 = fabs(p2[0] - p1[0]), fabs(p2[1] - p1[1]) g = gcd(t1, t2) + 1 memo[pair] = g return g 

main loop

Instead of

count = 0 for a in xrange(1, 101): for b in xrange(1, 101): for c in xrange(1, 101): for d in xrange(1, 101): I = interior((a, 0),(0, b),(-1*c, 0),(0, -1*d)) if I in squares: count += 1 

use itertools

import itertools count = sum(1 for a, b, c, d in itertools.product(range(1, 101), repeat=4) if interior((a, 0),(0, b),(-c, 0),(0, -d)) in squares) 

PolygonArea

Your polygon is always have 4 corners. You don't need to calculate length every time.

def SquareArea(corners): area = 0.0 for i in range(4): j = (i + 1) % 4 area += corners[i][0] * corners[j][1] area -= corners[j][0] * corners[i][1] area = abs(area) / 2.0 return area 

memonization

def lattice(p1, p2): pair = (p1, p2) if pair in memo: return memo[pair] t1, t2 = fabs(p2[0] - p1[0]), fabs(p2[1] - p1[1]) g = gcd(t1, t2) + 1 memo[pair] = g return g 

main loop

Instead of

count = 0 for a in xrange(1, 101): for b in xrange(1, 101): for c in xrange(1, 101): for d in xrange(1, 101): I = interior((a, 0),(0, b),(-1*c, 0),(0, -1*d)) if I in squares: count += 1 

use itertools

import itertools count = sum(1 for a, b, c, d in itertools.product(range(1, 101), repeat=4) if interior((a, 0),(0, b),(-c, 0),(0, -d)) in squares) 

PolygonArea

Your polygon is always have 4 corners. You don't need to calculate length every time.

def SquareArea(corners): area = 0.0 for i in range(4): j = (i + 1) % 4 area += corners[i][0] * corners[j][1] area -= corners[j][0] * corners[i][1] area = abs(area) / 2.0 return area 

memonization

def lattice(p1, p2): pair = (p1, p2) if pair in memo: return memo[pair] t1, t2 = fabs(p2[0] - p1[0]), fabs(p2[1] - p1[1]) g = gcd(t1, t2) + 1 memo[pair] = g return g 

main loop

Instead of

count = 0 for a in xrange(1, 101): for b in xrange(1, 101): for c in xrange(1, 101): for d in xrange(1, 101): I = interior((a, 0),(0, b),(-1*c, 0),(0, -1*d)) if I in squares: count += 1 

use itertools

import itertools count = sum(1 for a, b, c, d in itertools.product(range(1, 101), repeat=4) if interior((a, 0),(0, b),(-c, 0),(0, -d)) in squares) 

PolygonArea

Your polygon always have 4 corners. You don't need to calculate length every time.

def SquareArea(corners): area = 0.0 for i in range(4): j = (i + 1) % 4 area += corners[i][0] * corners[j][1] area -= corners[j][0] * corners[i][1] area = abs(area) / 2.0 return area 
The momorization functionallity is only memoraizing and not used.
Source Link

memonization

def lattice(p1, p2): tpair = (fabs(p2[0] - p1[0])p1, fabs(p2[1] - p1[1])p2) if not tpair in memo: memo[t]return memo[pair] t1, t2 = fabs(p2[0] - p1[0]), fabs(p2[1] - p1[1])  g = gcd(t[0]t1, t[1]t2) + 1 memo[pair] = g return memo[t]g 

main loop

Instead of

count = 0 for a in xrange(1, 101): for b in xrange(1, 101): for c in xrange(1, 101): for d in xrange(1, 101): I = interior((a, 0),(0, b),(-1*c, 0),(0, -1*d)) if I in squares: count += 1 

use itertools

import itertools count = sum(1 for a, b, c, d in itertools.product(range(1, 101), repeat=4) if interior((a, 0),(0, b),(-c, 0),(0, -d)) in squares) 

PolygonArea

Your polygon is always have 4 corners. You don't need to calculate length every time.

def SquareArea(corners): area = 0.0 for i in range(4): j = (i + 1) % 4 area += corners[i][0] * corners[j][1] area -= corners[j][0] * corners[i][1] area = abs(area) / 2.0 return area 

memonization

def lattice(p1, p2): t = (fabs(p2[0] - p1[0]), fabs(p2[1] - p1[1])) if not t in memo: memo[t] = gcd(t[0], t[1]) + 1 return memo[t] 

main loop

Instead of

count = 0 for a in xrange(1, 101): for b in xrange(1, 101): for c in xrange(1, 101): for d in xrange(1, 101): I = interior((a, 0),(0, b),(-1*c, 0),(0, -1*d)) if I in squares: count += 1 

use itertools

import itertools count = sum(1 for a, b, c, d in itertools.product(range(1, 101), repeat=4) if interior((a, 0),(0, b),(-c, 0),(0, -d)) in squares) 

PolygonArea

Your polygon is always have 4 corners. You don't need to calculate length every time.

def SquareArea(corners): area = 0.0 for i in range(4): j = (i + 1) % 4 area += corners[i][0] * corners[j][1] area -= corners[j][0] * corners[i][1] area = abs(area) / 2.0 return area 

memonization

def lattice(p1, p2): pair = (p1, p2) if pair in memo: return memo[pair] t1, t2 = fabs(p2[0] - p1[0]), fabs(p2[1] - p1[1])  g = gcd(t1, t2) + 1 memo[pair] = g return g 

main loop

Instead of

count = 0 for a in xrange(1, 101): for b in xrange(1, 101): for c in xrange(1, 101): for d in xrange(1, 101): I = interior((a, 0),(0, b),(-1*c, 0),(0, -1*d)) if I in squares: count += 1 

use itertools

import itertools count = sum(1 for a, b, c, d in itertools.product(range(1, 101), repeat=4) if interior((a, 0),(0, b),(-c, 0),(0, -d)) in squares) 

PolygonArea

Your polygon is always have 4 corners. You don't need to calculate length every time.

def SquareArea(corners): area = 0.0 for i in range(4): j = (i + 1) % 4 area += corners[i][0] * corners[j][1] area -= corners[j][0] * corners[i][1] area = abs(area) / 2.0 return area 
Source Link

memonization

def lattice(p1, p2): t = (fabs(p2[0] - p1[0]), fabs(p2[1] - p1[1])) if not t in memo: memo[t] = gcd(t[0], t[1]) + 1 return memo[t] 

main loop

Instead of

count = 0 for a in xrange(1, 101): for b in xrange(1, 101): for c in xrange(1, 101): for d in xrange(1, 101): I = interior((a, 0),(0, b),(-1*c, 0),(0, -1*d)) if I in squares: count += 1 

use itertools

import itertools count = sum(1 for a, b, c, d in itertools.product(range(1, 101), repeat=4) if interior((a, 0),(0, b),(-c, 0),(0, -d)) in squares) 

PolygonArea

Your polygon is always have 4 corners. You don't need to calculate length every time.

def SquareArea(corners): area = 0.0 for i in range(4): j = (i + 1) % 4 area += corners[i][0] * corners[j][1] area -= corners[j][0] * corners[i][1] area = abs(area) / 2.0 return area