• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            為生存而奔跑

               :: 首頁 :: 聯系 :: 聚合  :: 管理
              271 Posts :: 0 Stories :: 58 Comments :: 0 Trackbacks

            留言簿(5)

            我參與的團隊

            搜索

            •  

            積分與排名

            • 積分 - 328427
            • 排名 - 74

            最新評論

            閱讀排行榜

            評論排行榜

            http://code.google.com/codejam/contest/dashboard?c=32016#s=p2
            Problem

            In this problem, you have to find the last three digits before the decimal point for the number (3 + √5)n.

            For example, when n = 5, (3 + √5)5 = 3935.73982... The answer is 935.

            For n = 2, (3 + √5)2 = 27.4164079... The answer is 027.

            Input

            The first line of input gives the number of cases, T. T test cases follow, each on a separate line. Each test case contains one positive integer n.

            Output

            For each input case, you should output:

            Case #X: Y
            where X is the number of the test case and Y is the last three integer digits of the number (3 + √5)n. In case that number has fewer than three integer digits, add leading zeros so that your output contains exactly three digits.

             

            Limits

            1 <= T <= 100

            Small dataset

            2 <= n <= 30

            Large dataset

            2 <= n <= 2000000000

            Sample

            Input 
             

            Output 
             
            2
            5
            2
            Case #1: 935
            Case #2: 027


            Analysis

            Solving the large tests was a very different problem. The difficulty comes from the fact that √5 is irrational and for n close to 2000000000 you would need a lot of precision and a lot of time if you wanted to use the naive solution.

            The key in solving the problem is a mathematical concept called conjugation. In our problem, we simply note that (3 - √5) is a nice conjugate for (3 + √5). Let us define

            (1)     α := 3 + √5,   β := 3 - √5,   and Xn := αn + βn.
            We first note that Xn is an integer. This can be proved by using the binomial expansion. If you write everything down you'll notice that the irrational terms of the sums cancel each other out.

            Another observation is that βn < 1, so Xn is actually the first integer greater than αn. Thus we may just focus on computing the last three digits of X.

            A side note. In fact, βn tends to 0 so quickly that that our problem would be trivial if we asked for the three digits after the decimal point. For all large values of n they are always 999.


            SO, the last three digits of Xn-1 is what we want. We also know that X(n)=6X(n-1)-4X(n-2),X(0)=2,X(1)=6,so we can calc Xn easily.

            code


            posted on 2009-08-28 09:13 baby-fly 閱讀(577) 評論(0)  編輯 收藏 引用 所屬分類: Algorithm
            日本精品久久久久影院日本| 久久人人爽人人爽人人片AV不| 久久国产成人午夜AV影院| 国产三级观看久久| 2020国产成人久久精品| 欧美亚洲国产精品久久蜜芽| 亚洲国产成人精品女人久久久| 要久久爱在线免费观看| 久久精品国产一区二区| 久久超碰97人人做人人爱| 一本一道久久a久久精品综合| 色天使久久综合网天天| 久久精品国产亚洲AV高清热| 久久99精品九九九久久婷婷| 久久久久久人妻无码| 久久本道综合久久伊人| 精品久久无码中文字幕| 伊人久久大香线蕉av不变影院| 精品久久久久久国产牛牛app| 国产精品久久久久久五月尺| 精品国产福利久久久| 久久精品国产精品国产精品污| 四虎国产精品免费久久| 欧美激情精品久久久久| 亚洲AV无码久久| 午夜精品久久久久久毛片| 久久久久国产视频电影| 日韩精品久久久久久| 久久精品国产亚洲av麻豆色欲| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 久久精品国产精品亚洲精品| 亚洲国产精品久久66| 人人狠狠综合久久88成人| 国产亚洲精品久久久久秋霞| 久久久久无码专区亚洲av| 久久99国产精品99久久| 国产精品国色综合久久| 国产人久久人人人人爽| 久久99久久99精品免视看动漫| 亚州日韩精品专区久久久| 日本久久中文字幕|