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))
沒有留言:
張貼留言