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

            我參與的團隊

            搜索

            •  

            積分與排名

            • 積分 - 330206
            • 排名 - 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久久婷婷国产综合精品草原| 久久久午夜精品| 久久久91精品国产一区二区三区| 成人资源影音先锋久久资源网| 国产免费久久久久久无码| 色综合久久夜色精品国产| 久久婷婷五月综合97色 | 亚洲va国产va天堂va久久| 久久精品a亚洲国产v高清不卡| 久久se精品一区精品二区国产| 77777亚洲午夜久久多喷| 久久精品国产WWW456C0M| 色诱久久久久综合网ywww| 久久久久久A亚洲欧洲AV冫| 成人国内精品久久久久影院| 伊人热热久久原色播放www| 9191精品国产免费久久| 国产精品久久久久jk制服| 精品综合久久久久久97| 久久无码精品一区二区三区| 91精品国产91久久久久久青草| 99精品久久精品一区二区| 一本久道久久综合狠狠躁AV| 99久久精品免费国产大片| 99久久99这里只有免费的精品| 亚洲av伊人久久综合密臀性色| 久久免费看黄a级毛片| 色婷婷狠狠久久综合五月| 久久黄视频| 无码任你躁久久久久久老妇| 久久精品亚洲福利| 国内精品久久久久久久coent | 久久久久国产精品三级网 | 四虎国产精品成人免费久久 | 久久精品无码专区免费青青| 99久久精品免费看国产一区二区三区| 久久久综合香蕉尹人综合网| 国产精品久久新婚兰兰| 久久久精品人妻一区二区三区蜜桃| 欧美性大战久久久久久| 久久久久亚洲av成人网人人软件|