POJ 1183 反正切函式的應用

2021-06-26 13:31:10 字數 2088 閱讀 9780

description

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

(其中0 <= x <= 1) 公式(1) 

使用反正切函式計算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

1sample output

5。。。

題目裡有用的公式就只有(1/a + 1/b) / (1 - 1/ab),經推倒可得(c + b)/  ( bc - 1 ) = 1/ a,推倒可得(b - a)(c - a) = a * a + 1, 由此可得(b - c)與(c - a) 是a*a+1的因子,於是我們遍歷a*a+1的所有因子,取裡面b+c最大的即可。

/*

_ooooo_

o8888888o

88" . "88

(| -_- |)

o\ = /o

____/`---'\____

. ' \\| |// `.

/ \\||| : |||// \

/ _||||| -:- |||||- \

| | \\\ - /// | |

| \_| ''\---/'' | |

\ .-\__ `-` ___/-. /

___`. .' /--.--\ `. . __

."" '< `.___\_<|>_/___.' >'"".

| | : `- \`.;`\ _ /`;.`/ - ` : | |

\ \ `-. \_ __\ /__ _/ .-` / /

*****=`-.____`-.___\_____/___.-`____.-'*****=

`=---='

.............................................

*/#include #include #include #include #include #include #include #include #include #include #define pi 3.1415926

#define inf 123456789

using namespace std;

int main()

}cout << min << endl;

}return 0;}/*

1 represents b, f, p, or v

2 represents c, g, j, k, q, s, x, or z

3 represents d or t

4 represents l

5 represents m or n

6 represents r

*/

poj1183 反正切函式

第一道poj的題更博,類似於博主這種英文水平,也就切一切這種中文題了吧!題目大意 給你正整數a,求滿足條件的 b 和 c,使得 frac frac frac 且 b c 的和最小。注釋 1 a 60,000 想法 乍一看,數論啊!嘻嘻嘻嘻,好開心,但是沒做出來。問了一下神犇ck蛤學長,掌握了一種極猛...

poj 1183 反正切函式的應用

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

(POJ 1183)反正切函式的應用

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