热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

趣题:估算小数点后第三位

下面这道题来自今年的VirginiaTechRigeonal数学比赛(不知道该咋翻好)。比赛时间为两个半小时,一共有7道题,

    下面这道题来自今年的Virginia Tech Rigeonal数学比赛(不知道该咋翻好)。比赛时间为两个半小时,一共有7道题,这是第5题:
    找出下面这个数小数点后第三位上的数字:(2+√5)^100 * ((1+√2)^100 + (1+√2)^(-100))

    这个问题有趣的地方就是,你真的可以用一个简单的办法估算出答案来。为什么不先试试看?











































    我们需要求出(2+√5)^100 * ((1+√2)^100 + (1+√2)^(-100))小数点后第三位上的数。首先,(1+√2)^(-1)就等于(√2-1),而二项式展开后你会发现(√2 + 1)^(2n) + (√2 - 1)^(2n)总是一个整数(根号2的奇数次幂总是一正一负抵消)。同样地,((√5 + 2)^(2n) + (√5 - 2)^(2n)) * ((√2 + 1)^(2n) + (√2 - 1)^(2n))也是一个整数,于是(√5 + 2)^(2n) * ((√2 + 1)^(2n) + (√2 - 1)^(2n))和(√5 - 2)^(2n) * ((√2 + 1)^(2n) + (√2 - 1)^(2n))的小数部分是互补的(相加为1),我们可以依据后面这个数的小数部分来确定前面这个数(也即题目要求的数)的小数部分。而当n较大时,后面这个数很可能会变得非常小。事实上,当n=50时,

  (√5 - 2)^100 * ((√2 + 1)^100 + (√2 - 1)^100)
<(√5 - 2)^100 * 2((√2 &#43; 1)^100)
<(1/4)^100 * 2((5/2)^100)
&#61; 2(5/8)^100

    可以断定&#xff0c;这是一个非常非常小的数&#xff0c;小数点后面紧跟着的0至少有10个。这足以说明&#xff0c;题目里那个数的小数点后面十几位全部是9。事实上&#xff0c;
(2&#43;√5)^100 * ((1&#43;√2)^100 &#43; (1&#43;√2)^(-100))
&#61; 94158733601034420664808450657998303298219601745567527892456021922994
  873597395955752869490271254871747.9999999999999999999999996186915243
  507242961564029332966750212181162222265977213142686546252118999....
    小数点后一共有24个9。

本文来源&#xff1a;http://www.cut-the-knot.org/arithmetic/PowersOf10.shtml


推荐阅读
author-avatar
mobiledu2502910157
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有