B 反正切函式的應用解題報告(賀奕凱)

2021-06-05 20:56:22 字數 1249 閱讀 5068

b - 反正切函式的應用

time limit:1000msmemory limit:10000kb64bit io format:%i64d & %i64u

submit

status

practice

poj 1183

description

反正切函式可展開成無窮級數,有如下公式 

使用反正切函式計算pi是一種常用的方法。例如,最簡單的計算pi的方法: 

pi=4arctan(1)=4(1-1/3+1/5-1/7+1/9-1/11+...) 公式(2) 

然而,這種方法的效率很低,但我們可以根據角度和的正切函式公式: 

tan(a+b)=[tan(a)+tan(b)]/[1-tan(a)*tan(b)] 公式(3) 

通過簡單的變換得到: 

arctan(p)+arctan(q)=arctan[(p+q)/(1-pq)] 公式(4) 

利用這個公式,令p=1/2,q=1/3,則(p+q)/(1-pq)=1,有 

arctan(1/2)+arctan(1/3)=arctan[(1/2+1/3)/(1-1/2*1/3)]=arctan(1) 

使用1/2和1/3的反正切來計算arctan(1),速度就快多了。 

我們將公式(4)寫成如下形式 

arctan(1/a)=arctan(1/b)+arctan(1/c) 

其中a,b和c均為正整數。 

我們的問題是:對於每乙個給定的a(1 <= a <= 60000),求b+c的值。我們保證對於任意的a都存在整數解。如果有多個解,要求你給出b+c最小的解。 

input

輸入檔案中只有乙個正整數a,其中 1 <= a <= 60000。

output

輸出檔案中只有乙個整數,為 b+c 的值。

sample input

1
sample output

5
演算法型別:數論

解題思路:先把a和b全部帶入,用消元法消去b,然式子之和a有關,然後根據基本不等式的性質,a從大到小依次列舉,得到結果。

演算法實現:

#include#include#includeint main()

} printf("%i64d\n",2*a+m+n);

} return 0;

}

反正切函式的應用解題報告

反正切函式可展開成無窮級數,有如下公式 使用反正切函式計算pi是一種常用的方法。例如,最簡單的計算pi的方法 pi 4arctan 1 4 1 1 3 1 5 1 7 1 9 1 11 公式 2 然而,這種方法的效率很低,但我們可以根據角度和的正切函式公式 tan a b tan a tan b 1...

反正切函式的應用

反正切函式的應用crawling in process.crawling failed time limit 1000msmemory limit 10000kb64bit io format i64d i64u submit status description 反正切函式可展開成無窮級數,有如下...

反正切函式的應用

description 反正切函式可展開成無窮級數,有如下公式 使用反正切函式計算pi是一種常用的方法。例如,最簡單的計算pi的方法 pi 4arctan 1 4 1 1 3 1 5 1 7 1 9 1 11 公式 2 然而,這種方法的效率很低,但我們可以根據角度和的正切函式公式 tan a b t...