總網頁瀏覽量
2020年11月20日 星期五
2020年11月19日 星期四
108學年度資訊能力競賽(北二區 【新竹高中考區 】 PM 第1題 射飛機)
Python Code:
#n個點座標
n=int(input())
#每的點的座標
k=[] # 存入基地台位置
for i in range(n):
q=[int(x) for x in input().split()]
k.append(q)
#求最大公因數
def gcd(x, y):
return x if y== 0 else gcd(y, x % y)
#輸入點傳回直線係數
def line(p,q):
A=q[1]-p[1]
B=-(q[0]-p[0])
C=p[1]*(q[0]-p[0])-p[0]*(q[1]-p[1])
d=gcd(gcd(A,B),C)
a=A//d
b=B//d
c=C//d
if a>0:
return [-a/b,a,b,c]
elif a==0:
if b>0:
return [0,0,b,c]
elif b<0:
return [0,0,-b,-c]
else:
return [-a/b,-a,-b,-c]
ans=[]#存斜率及a,b,c值
for i in range(n-1):
for j in range(i+1,n):
ans.append(line(k[i],k[j]))
slope=[]
for i in range(len(ans)):
slope.append(ans[i][0])
slope_min=min(slope)
for i in range(1,4):
print(ans[slope.index(slope_min)][i],end=' ')
2020年11月16日 星期一
109學年度第一學期Q5
2020年11月13日 星期五
2020年11月10日 星期二
108學年度資訊能力競賽(北二區 【新竹高中考區 】 PM 第3題 空氣盒子)
Python Code:
import numpy as lp
#n為n行資料,即(n-1)次多項 p為氣體特徵值,要求為質數 t為預測的時間
n,p,t = map(int,input( ).split( ))
a=[] # 存入基地台位置
for i in range(n):
q=[int(x) for x in input().split()]
a.append(q)
#將輸入的資料依時間序排好
for i in range(n-1,0,-1):
for j in range(0,i,1):
if a[j][0]>a[j+1][0]:
a[j],a[j+1]=a[j+1],a[j]
#時間愈大,特徵值愈大,若變小,加上特徵值
for i in range(n-1):
if a[i][1]>a[i+1][1]:
a[i+1][1]=a[i+1][1]+p
#要解方程式,創建b
b=[]
for i in range(n):
b.append(a[i][1])
#創建凡得夢行列式
A=[]
for i in range(n):
q=[]
for j in range(n):
q.append((a[i][0])**(n-j-1))
A.append((q))
#要解方程式,需要A的反矩陣
A_inverse=lp.linalg.inv(A) #取A的反矩陣
x=lp.dot(A_inverse,b)# 矩陣相乘,X=b/A
#定義出特定時間的氣體特徵值
def f(t):
sum=0
for i in range(len(x)):
sum+=x[i]*t**(n-i-1)
return int(round(sum))
#輸出氣體特徵值
print(f(t))





















