问题 4352 --数值微分

4352: 数值微分

时间限制: 1 Sec  内存限制: 128 MB
提交: 26  解决: 1
[提交][状态][讨论版][命题人:]

题目描述

在数学中,对光滑函数求微分是一种常见的操作。在实际应用中,一些函数 没有解析形式,通常会从函数上取若干个点,用这些点来近似地表示这个函数。 现在有一个函数f(x),我们在函数上取n个值f(1),f(2),…,f(n)。对函数f(x) 取微分得到函数f’(x)。我们近似地认为f’(i)=f(i)-f(i-1)。 同理,对f’(x)求微分可以得到f’’(x),我们近似地认为f’’(i)=f’(i)-f’(i-1)。(注 意这里的f’(i)和f’(i-1)本身就是我们求的近似值)。 函数f’(x)被称为一阶微分,f’’(x)被称为二阶微分。如果对函数f(x)连续做m 次微分操作,得到的函数被称为m阶微分。特殊地,f(x)可以被认为是自身的0 阶微分。 用f[m](x)表示f(x)的m阶微分,我们认为对任意自然数m,有f[m](0)=0。 在计算近似值时,直接使用这条性质。 现在,给出f(1),f(2),…,f(n),以及m。,求f[m](1), f[m](2),…, f[m](n)。 


把上面所说的内容说的清楚一点,输入的是f(1),f(2),…,f(n) 令f[0](x)=f(x),x=1,2,…,n 令f[i](0)=0,i=0,1,…m 令f[i](x)=f[i-1](x)-f[i-1](x-1), x=1,2,…,n, i=1,2,…,m 输出的是f[m](x) ,x=1,2,…,n

输入

第一行两个数n,m;

第二行n个数,分别表示f(1),f(2),…,f(n);

输出

输出n行,第x行是f[m](x)的值; 

结果对100007取模。

样例输入

3 2 
6 7 8

样例输出

6 
100002 
0 

提示


对于30%的数据, m<=1000;



对于60%的数据, m<=10^6;



对于100%的数据, n<=1000,m<=10^9,0<=f(i)<100007;

来源

[提交][状态]