• 2013年3月百度之星B题


    Sigma

    Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)

    Problem Description

    小H是一个程序员。他很喜欢做各种各样的数学题,尤其喜欢做《水泥数学》。

    在看了《水泥数学》的2.5章后,小H终于会用9种计算 1^2+2^2+...+n^2 了!这两天,他一直在思考一个加强的问题。他想要计算1^k+...+n^k。

    通过思考,他发现对所有k,P(n)=1^k+...+n^k 可以表示成一个最高次数为 k+1 的有理系数多项式。比方说当k=1时P(n)=n(n+1)/2.

    现在,对某个k,小H想知道P(n)的系数。

    Input

             第一行为一个整数t(1 <= t <= 31),表示有 t 组测试数据;

             下面T行每行一个正整数k(0 <= k<= 30),表示一组数据。

    Output

             对于每个输入k,输出一行 k+2 个分数,依次给出此时 P(n)=a_{k+1} n^{k+1}+...+a_1 n+a_0 的系数 a_{k+1},....,a_0。所有分数必须以 “a/b” 的形式给出,其中a和b为整数且互质,b>0 ;如果某一项为0,输出 “0/1”。

    Sample Input
             2
             1
             2
    Sample Output
             1/2 1/2 0/1
             1/3 1/2 1/6 0/1
    这道题是伯努利数,(1/2)、1/6、-1/30、1/42、-1/30、5/66、-691/2730、7/6、-3617/510、43867/798、-174611/330、854513/138等等等等。。。。
    从第三个式子开始,每两个式子增加一项,且从k=4开始,除第二项的偶数项系数为负,S前系数从1开始以1递增
    设第a项
    第一项系数为a=1,第二项从a=1开始以0.5递增,这两项规律容易发现
    第三项开始第a项系数为(k+2a-4)!/(k!*(2a-4)!)*φ,其中φ为前面数列的对应各项(不包括1/2), (a-2<=k/2)
    a=3时,φ=1/6,依此类推,有这个公式
     
    这题没写完,就交了,结果交完看到主办方说这次题目太难就延时两个小时到12点,而且百度一道题只允许交一次代码,当时我就SB了。代码一样过后再贴。
  • 相关阅读:
    怎样理解HTMLCollection接口
    怎样单独遍历NodeList的键、值和键值对
    怎样获取NodeList某位置上的节点
    怎样遍历NodeList对象
    怎样理解NodeList的动态集合与静态集合
    怎样将类似数组的对象转换为数组
    怎样理解 instanceof
    怎样清理当前节点下的所有文本节点
    怎样移除当前节点
    怎样判断一个节点是否相等 / 是否相同
  • 原文地址:https://www.cnblogs.com/whatthefy/p/2991051.html
Copyright © 2020-2023  润新知