-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprob397.py
31 lines (30 loc) · 970 Bytes
/
prob397.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
'''
Created on Oct 10, 2012
@author: themez
'''
import math
def degree(A,B,C):
return abs(math.atan2(B[1]-A[1],B[0]-A[0])-math.atan2(C[1]-A[1],C[0]-A[0]))
def has45Degree(k,a,b,c):
A,B,C = zip([a,b,c], map(lambda x: x**2/k ,[a,b,c]))
if abs(degree(A,B,C)-math.pi/4)<=0.01 or abs(degree(B,C,A)-math.pi/4)<=0.01 or abs(degree(C,A,B)-math.pi/4)<=0.01:
print("A:%s,B:%s,C:%s"%(degree(A,B,C),degree(B,C,A),degree(C,A,B)))
return True
else:
return False
def F(K,X):
cnt=0
for k in range(1,K+1):
for a in range(-X,X-1):
for b in range(a+1,X):
for c in range(b+1,X+1):
if has45Degree(k,a,b,c):
print("%d,%d,%d,%d"%(k,a,b,c))
cnt+=1
else:
print("fail:%d,%d,%d,%d"%(k,a,b,c))
return cnt
if __name__ == '__main__':
print F(1,10)
# print degree((0,0),(100,1),(1,1))
pass