問題はこちら
No.242 ビンゴゲーム - yukicoder
5数の組み合わせは通りあり、
N個の数でビンゴになるような5数の組み合わせが通りあるので
各列についてN個目までにビンゴになる確率は
5×5のカードは縦横斜めで12ビンゴできるので期待値の線形性より求めるものはこれの12倍
(任意の確率変数X,Yに対してE[X+Y]=E[X]+E[Y]が成立)
適当に約分してやれば
となる
int main(){ double n; scanf("%lf",&n); printf("%f",n*(n-1)*(n-2)*(n-3)*(n-4)/715231440); return 0; }
縮めて
n;main(){n=scanf("%d",&n)>printf("%f",n*~-n*(n-2)*(n-3)/715231440.*(n-4));} //掛け算全部を先にするとオーバーフローするので注意
定数は1桁ごまかせて
n;main(){n=scanf("%d",&n)>printf("%f",n*~-n*(n-2)*(n-3)/7152314e2*(n-4));}
どうにかカッコを外せないかと悩んでいたら変態挙動をする未定義動作コードを書いてしまった…
n;main(){n=scanf("%d",&n)>printf("%f",n*n--*--n*--n/7152314e2*--n);} //全部を前置decにするとダメ
通る理由はさっぱりわからないけど68B
2016/10/16追記
もう1桁削れた
n;main(){n=scanf("%d",&n)>printf("%f",n*n--*--n*--n/715232e3*--n);}
67B