kmjp's blog

競技プログラミング参加記です

yukicoder : No.881 sin(x)/xの和

証明せずACしてるので、気にしない人向け。
https://yukicoder.me/problems/no/881

問題

小数A,Xが与えられるとき、 \displaystyle \sum_{j=-\infty}^{\infty} A\mathrm{sinc}(X+j)を求めよ。

解法

Aはまぁ前にくくりだせばいいとして、問題は \displaystyle \sum_{j=-\infty}^{\infty} \mathrm{sinc}(X+j)
ただこれ、いくつか実験してみるとXの値に関わらずπになることが推測つく。
よってAπを答えるとよい。

証明が気になる方はEditorialを参照ください…。

int N;
double A,X,R;

double sinc(double x) {
	if(x==0) return 1;
	return sin(x)/x;
}

void solve() {
	int i,j,k,l,r,x,y; string s;
	
	cin>>N;
	FOR(i,N) {
		cin>>X>>A;
		R+=A;
	}
	R*=atan(1)*4;
	_P("%.12lf\n",R);
	return;
	
	for(double a=0;a<6;a+=0.1) {
		double ret=0;
		for(i=-10000000;i<=10000000;i++) ret+=sinc(a+i);
		_P("%.12lf %.12lf\n",a,ret);
	}
	
}

まとめ

これみんなどのぐらい証明して確信もって解いてるんだろう…