魔方吧·中文魔方俱乐部

标题: 损坏的计算器 [打印本页]

作者: yang_bigarm    时间: 2009-9-22 23:31:33     标题: 损坏的计算器

刚在一本书上看到一个和有意思的题目。

-----------------------------------problem-------------------------------------------
有一个科学计算器,它上面的大部分按钮都失灵了。只有Sin Cos Tan ArcSin ArcCos ArcTan
这6个按钮是有好的。计算器安好电池之后显示的数字是0。

问:能否只按这6个按钮有限次而得到任意一个有理数 p/q

例如要得到1,就按 ArcCos(0) = 1

注意:这里假定所有的计算都是具有任意精度的,也就是Sin(ArcCos(1/2))=sqrt(3)/2没有浮点舍入的误差。
作者: 战斗机    时间: 2009-9-23 00:24:25

天知道啊!你搞计算机入迷了吗?
作者: Zeon.C    时间: 2009-9-23 06:31:39

恩…我蒙可以得…做不出阿…
作者: victormagic    时间: 2009-9-23 08:47:25

从值域来看是可以的 方法不明
作者: Cielo    时间: 2009-9-23 21:15:09

原帖由 yang_bigarm 于 2009-9-22 23:31 发表
例如要得到1,就按 ArcCos(0) = 1 ...


应该是Cos(0)=1

题目不会做……
作者: lulijie    时间: 2009-9-24 01:15:50

cos0=1
用f(x)表示sin(arctan(x))
g(x,k)表示f(f(f(...)))      k个嵌套f 函数。
那么 g(1,3)=f(f(f(1)))=sin(acrtan(sin(arctan(sin(arctan(1))))))=1/2
         g(1/2,5)=1/3
         g(1/3,7)=1/4
         g(1/4,9)=1/5
          ......
        g(1/n,2n+1)=1/(n+1)    即  g(1,n^2-1)=1/n
作者: lulijie    时间: 2009-9-24 01:31:58

h(x)=f(cos(arctan(x))
那么
h(1/2)=2/3
g(2/3,4)=2/5
g(2/5,6)=2/7
g(2/7,8)=2/9
......
g(2/(2k-1),2k)=2/(2k+1) ,即 g(2/3,(k-1)(k+2))=2/(2k+1)

[ 本帖最后由 lulijie 于 2009-9-24 01:34 编辑 ]
作者: superacid    时间: 2009-9-24 07:26:54

负数怎么办?
作者: lulijie    时间: 2009-9-24 13:14:53

设:w(x)=Tan(acrcos(f(x))
那么  w(1/x)=x
比如  w(1/2)=2
        w(1/3)=3
        w(2/3)=3/2
-----------------------------
这样对于任意正整数n,  可通过   w(g(1,n^2-1))  获得。
对于p/q,   p、q都是正整数,且其中至少有一个为1或2。都可以通过以下获得:
    cos(0)=1
    g(1,n^2-1)=1/n
    h(1/2)=2/3
    g(2/3,(k-1)(k+2))=2/(2k+1)
     w(1/x)=x
----------------------
对于负号可以通过比如cos(2)、sin(4)等获得。
但对于比如-1/2如何获得,即其他p/q如何获得,还在考虑中。大家也想想有什么办法。
作者: phileas    时间: 2009-9-24 20:30:33

正有理数都是可以得到的。
可以用数学归纳法证明更强的命题:对任意自然数p,q,sqrt(p/q)都是可以得到的。

只要注意三个公式就可以了:
公式一:sin( arctan( sqrt( a / b ) ) ) = sqrt( a / (b + a) )
公式二:cos( arctan( sqrt( a / b ) ) ) = sqrt( b / (b + a) )
根据以上两个公式,对q进行归纳,可以证明,当p<q时,sqrt(p/q)是可以得到的。

公式三:tan( arcsin( sqrt( a / b ) ) ) = sqrt( a / (b - a) ) ,其中 a < b
根据这个公式,显然,当p > q时,sqrt(p/q)也是可以得到的。

=============================================
负有理数不知道怎么搞。
arcsin( cos(2) ) = pi/2 - 2
arctan( tan(2) ) = 2 - pi
不过不知道怎么把里面的pi去掉

[ 本帖最后由 phileas 于 2009-9-24 21:04 编辑 ]
作者: 金眼睛    时间: 2009-9-25 11:35:33

计算过程无非是这些函数的一种序列,首先进行两两组合,发现下面几个有用的公式:
1、sin(acos(x))=cos(asin(x))=1/sqrt(1-x^2);2、cos(atan(x))=1/sqrt(1+x^2);3、tan(asin(x))=x/sqrt(1-x^2);
4、tan(acos(x))=sqrt(1-x^2)/x;5、sin(atan(x))=x/sqrt(1+x^2);

再对这些公式进行组合,可以得到更为实用的两个公式:6、公式2带入3或者5带入4,可得1/x;7、公式5带入1可以得到sqrt(1+x^2)

cos(0)=1,故用7式数次我们可以得到sqrt (n),n为正整数,故全部正整数n也可以通过n^2获得,再通过公式6,1/sqrt(n)及1/n易得。

考虑任意的有理数p/q,观察公式7: x->sqrt(1+x^2),是一个把根号下真分数化根号下带分数很好的工具,而且有公式6做保证,自然想到辗转法。

举例说明:例如要求5/3,我们来倒推一下,计算5/3=sqrt(25/9)=sqrt(1+sqrt(16/9)^2),也就是说,我们需要预先得到sqrt(16/9),这样

sqrt(16/9) -> sqrt(7/9) -> sqrt(9/7) -> sqrt(2/7) -> sqrt(7/2) -> sqrt(5/2) -> sqrt(3/2) -> sqrt(1/2) = 1/sqrt(2)

前面已经知道,1/sqrt(n)是可以获得的,所以任意的正有理数p/q都可通过此法获得,不过这种方法对于负值不适用,我也没想出来负值怎么做。

[ 本帖最后由 金眼睛 于 2009-9-25 21:23 编辑 ]
作者: 魔导师淩少    时间: 2009-9-25 11:45:33

天。。。。。。。。我疯了      医院在哪?
作者: superacid    时间: 2009-9-25 11:55:53     标题: 回复 12# 的帖子

可以去医疗服务区
作者: yang_bigarm    时间: 2009-9-26 16:57:25

哈哈,类比辗转相除法,金眼睛的解法正中下怀啊!
我一开始也是不断地尝试各种组合,后来发现一个sqrt(2/3), sqrt(3/5), sqrt(8/5)....
这样的序列,让我联想到了辗转相除法。

负数的我也没有想出来。
作者: a626954762    时间: 2009-10-31 09:08:18

晕啊.................
作者: yuanzesong    时间: 2009-10-31 09:14:17

我数学不好~~~~我遇到这种情况会买个新的    你们继续研究题~~·我飘过
作者: 谢老师    时间: 2009-11-4 17:00:25

绞尽脑汁!限制条件多啊!
作者: erictrui    时间: 2009-11-4 22:13:38

我建议再买一个计算器吧……




欢迎光临 魔方吧·中文魔方俱乐部 (http://bbs.mf8-china.com/) Powered by Discuz! X2