• <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)

            我參與的團隊

            搜索

            •  

            積分與排名

            • 積分 - 328709
            • 排名 - 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 閱讀(578) 評論(0)  編輯 收藏 引用 所屬分類: Algorithm
            嫩草伊人久久精品少妇AV| 久久精品18| 亚洲精品高清一二区久久| 高清免费久久午夜精品| 99久久久精品免费观看国产| 精品久久久无码21p发布| 久久久国产视频| 日日狠狠久久偷偷色综合免费| 久久99精品九九九久久婷婷| 青青草原综合久久大伊人精品| 国内精品久久久久| 国产精品久久久99| 久久久精品久久久久特色影视| 国产精品久久久久久久午夜片| 亚洲国产成人久久精品影视| 国产三级精品久久| 久久久久久国产a免费观看黄色大片 | 久久国产精品久久国产精品| 中文国产成人精品久久不卡 | 久久久噜噜噜久久中文字幕色伊伊 | 久久99国产精品一区二区| 国产精品18久久久久久vr | 日韩AV无码久久一区二区| 久久精品国产清高在天天线| 精品综合久久久久久97超人| 久久精品一区二区三区中文字幕| 性做久久久久久久久老女人| 亚洲精品乱码久久久久久| 97久久精品人人澡人人爽| 色播久久人人爽人人爽人人片aV | 国产69精品久久久久99尤物| 久久婷婷五月综合97色直播| 亚洲va久久久噜噜噜久久| 亚洲午夜精品久久久久久人妖| 热久久国产欧美一区二区精品| 亚洲精品蜜桃久久久久久| 久久99精品久久久久久不卡| 久久久精品2019免费观看| 欧美久久天天综合香蕉伊| 91精品国产乱码久久久久久| 一本色道久久综合|