打卡信奥刷题(108)用Scratch图形化工具信奥P5695 [普及组] [NOI2001] 反正切函数的应用

[NOI2001] 反正切函数的应用

题目背景

反正切函数可展开成无穷级数,有如下公式

arctan ⁡ ( x ) = ∑ n = 0 ∞ ( − 1 ) n x 2 n + 1 2 n + 1 ( 0 ≤ x ≤ 1 ) (1) \arctan(x) = \sum_{n = 0}^\infty \frac{(-1) ^ n x ^ {2n + 1}}{2n + 1} ( 0 \le x \le 1 ) \tag{1} arctan(x)=n=02n+1(1)nx2n+1(0x1)(1)

使用反正切函数计算 是一种常用的方法。例如,最简单的计算 的方法:

π = 4 arctan ⁡ ( 1 ) = 4 ( 1 − 1 3 + 1 5 − 1 7 + 1 9 − 1 11 + …   ) (2) \begin{aligned} \pi & = 4 \arctan(1) \\ & = 4(1 - \frac{1}{3} + \frac{1}{5} - \frac{1}{7} + \frac{1}{9} - \frac{1}{11} + \dots) \end{aligned} \tag{2} π=4arctan(1)=4(131+5171+91111+)(2)

然而,这种方法的效率很低,但我们可以根据角度和的正切函数公式:

tan ⁡ ( α + β ) = tan ⁡ ( α ) + tan ⁡ ( β ) 1 − tan ⁡ ( α ) tan ⁡ ( β ) (3) \tan(\alpha + \beta) = \frac{\tan(\alpha) + \tan(\beta)}{1 - \tan(\alpha) \tan(\beta)} \tag{3} tan(α+β)=1tan(α)tan(β)tan(α)+tan(β)(3)

通过简单的变换得到:

arctan ⁡ ( p ) + arctan ⁡ ( q ) = arctan ⁡ ( p + q 1 − p q ) (4) \arctan(p) + \arctan(q) = \arctan(\frac{p + q}{1 - p q}) \tag{4} arctan(p)+arctan(q)=arctan(1pqp+q)(4)

利用这个公式,令 $ p = \frac{1}{2}, q = \frac{1}{3} $,则 $ \frac{p + q}{1 - p q} = 1 $,有

arctan ⁡ ( 1 2 ) + arctan ⁡ ( 1 3 ) = arctan ⁡ ( 1 2 + 1 3 1 − 1 2 ⋅ 1 3 ) = arctan ⁡ ( 1 ) \arctan(\frac{1}{2}) + \arctan(\frac{1}{3}) = \arctan(\frac{\frac{1}{2} + \frac{1}{3}}{1 - \frac{1}{2} \cdot \frac{1}{3}}) = \arctan(1) arctan(21)+arctan(31)=arctan(1213121+31)=arctan(1)

题目描述

我们将公式 $ 4 $ 写成如下形式

arctan ⁡ ( 1 a ) = arctan ⁡ ( 1 b ) + arctan ⁡ ( 1 c ) \arctan(\frac{1}{a}) = \arctan(\frac{1}{b}) + \arctan(\frac{1}{c}) arctan(a1)=arctan(b1)+arctan(c1)

其中 $ a, b, c \in \mathbb{N^+} $。

我们的问题是:对于每一个给定的 a a a,求 $ b + c $ 的值。我们保证对于任意的 $ a $ 都存在整数解。如果有多个解,要求你给出 $ b + c $ 最小的解。

输入格式

输入文件中只有一个正整数 $ a $。

输出格式

输出文件中只有一个整数,为 $ b + c $ 的值。

样例 #1

样例输入 #1

1

样例输出 #1

5

提示

$1 \le a \le 6\times 10^4 $。

Scratch实现

在这里插入图片描述

后续

接下来我会不断用scratch来实现信奥比赛中的算法题、Scratch考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值