Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- def A1(s):
- if s >= 60:
- return 1.0
- else:
- return (1/(math.exp(60-(abs(s)))))
- def A2(s):
- if s <= 10:
- return 1.0
- else:
- return 1 / (1 + (math.exp((abs(10 - s)))))
- def B1(s):
- if 0 <= s < 0.8:
- return 1/(1 + ((0.2 + s)**3))
- elif s >= 0.8:
- return 1.0
- def B2(s):
- if s > 0.1:
- return 1/(1 + ((0.9 + s)**2))
- elif 0 <= s <= 0.1:
- return 1.0
- def Rule1_min(s,e):
- return min(A2(s),B2(e))
- def Rule2_min(s,e):
- return min(A1(s),B2(e))
- def Rule3_min(s,e):
- return min(A1(s),B1(e))
- def COG(w1,w2,w3,c1,c2,c3):
- return (w1*c1 + w2*c2 + w3*c3)/(w1+w2+w3)
- def Presmetaj(h, c1, c2, c3):
- resenie={}
- temp = 15
- resenie[(6, h)] = (temp, COG(Rule1_min(temp, h), Rule2_min(temp, h), Rule3_min(temp, h), c1, c2, c3))
- for i in range(7, 19):
- temp += 1.5
- resenie[(i, h)] = (temp, COG(Rule1_min(temp, h), Rule2_min(temp, h), Rule3_min(temp, h), c1, c2, c3))
- for i in range(19, 25):
- temp -= 1.5
- resenie[(i, h)] = (temp, COG(Rule1_min(temp, h), Rule2_min(temp, h), Rule3_min(temp, h), c1, c2, c3))
- for i in range(1, 6):
- temp -= 1.5
- resenie[(i, h)] = (temp, COG(Rule1_min(temp, h), Rule2_min(temp, h), Rule3_min(temp, h), c1, c2, c3))
- return resenie
- if __name__ == "__main__":
- h=input()
- c1 = 2000
- c2 = 500
- c3 = 100
- rez = Presmetaj(h, c1, c2, c3)
- for p in rez:
- rez[p] = (rez[p][0], round(rez[p][1], 4))
- print rez
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement