• <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
            久久亚洲春色中文字幕久久久| 久久久91人妻无码精品蜜桃HD| 思思久久99热免费精品6| 久久强奷乱码老熟女| 久久婷婷色综合一区二区| 男女久久久国产一区二区三区| 国产精品久久久福利| 亚洲国产成人久久综合碰碰动漫3d| 久久国产乱子精品免费女| 精品久久久无码21p发布| 久久ww精品w免费人成| 久久激情亚洲精品无码?V| 亚洲国产另类久久久精品小说| 中文字幕一区二区三区久久网站| 国产精品一区二区久久精品无码| 久久久亚洲欧洲日产国码是AV| 久久99中文字幕久久| 国产成人综合久久精品红| 国产精品免费久久久久久久久| 久久天天躁狠狠躁夜夜avapp| 亚洲国产成人久久精品动漫| 亚洲乱码精品久久久久..| 久久久黄片| 国产一区二区精品久久岳| 久久婷婷五月综合色奶水99啪| 久久精品国产亚洲5555| 日本道色综合久久影院| 97久久精品人人做人人爽| 久久天天躁夜夜躁狠狠| 亚洲精品国产自在久久| 久久精品国产亚洲Aⅴ香蕉| 国产亚洲综合久久系列| 一本一本久久aa综合精品| 久久青青草视频| 久久亚洲精品国产精品婷婷| 久久青青国产| 四虎久久影院| 国内精品久久久久影院亚洲| 亚洲欧美国产精品专区久久| 欧美性猛交xxxx免费看久久久| 污污内射久久一区二区欧美日韩|