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

            為生存而奔跑

               :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              271 Posts :: 0 Stories :: 58 Comments :: 0 Trackbacks

            留言簿(5)

            我參與的團隊

            搜索

            •  

            積分與排名

            • 積分 - 330187
            • 排名 - 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 閱讀(586) 評論(0)  編輯 收藏 引用 所屬分類: Algorithm
            …久久精品99久久香蕉国产| 无码精品久久久天天影视| 久久夜色精品国产亚洲| 久久精品国产只有精品2020| 久久99精品九九九久久婷婷| 亚洲精品无码专区久久同性男| 亚洲va国产va天堂va久久| 91精品国产色综久久| 久久精品免费一区二区| 久久国产高清字幕中文| 日韩欧美亚洲综合久久| 国产99久久久国产精品~~牛 | 久久久久久久久久久久中文字幕| 国产欧美久久一区二区| 久久久久青草线蕉综合超碰 | 亚洲国产成人久久综合碰碰动漫3d | 久久综合九色综合精品| 人人妻久久人人澡人人爽人人精品| 国产69精品久久久久99尤物| 国产A三级久久精品| 久久久99精品成人片中文字幕 | 精品久久久久久国产| 久久久久久国产a免费观看不卡| 精品免费久久久久久久| 久久伊人五月丁香狠狠色| 久久天天躁狠狠躁夜夜2020老熟妇| 国产精品无码久久综合| 久久夜色精品国产噜噜麻豆| 亚洲综合熟女久久久30p| 久久精品极品盛宴观看| 青青热久久国产久精品| 久久www免费人成看国产片| 99久久综合狠狠综合久久| 国产精品久久久久久久久久免费| 精品久久香蕉国产线看观看亚洲| 久久99精品久久久久久hb无码 | 午夜精品久久久久久久久| 一本色道久久HEZYO无码| 久久综合给合久久狠狠狠97色69| 久久综合给合久久国产免费| 国内精品久久久久久99|