[spojRNG] 난수 생성기

[- 모든 제 더한 번호 R1은, 즉, 구간 [0,2Ri, 포함 및 제외, 수신 일축 구간 [0, + OO) 고려 변경 ) 2Ri, + OO를 ) 주문하고 [2Ri, + OO를 $ BI = 인공 2Ri $으로는 범위 [0과 동등한, + OO)을
변환하고, 숫자 나 N 무한대 범위 위해서 프로그램의 수를 초과하지 않으며, 발견 추측을 $의 B ^ {N} / 그 N! $, 폭력이 누적 될 수 있습니다

1 #INCLUDE <. 비트 / stdc ++ H>
 2  사용  스페이스 성병;
3  #DEFINE의 LD 긴 이중
 4  의 INT t, N, X, Y, A [ 11 ];
도 5  의 LD ANS;
6 의 LD CALC ( INT의 K) {
 7      경우 (K <= 0 ) 복귀  0 ;
8      의 LD ANS = 1 ;
(9)      에 대해 ( int로 I = 1 ; i가 N = <; 내가 ++) ANS ANS * = K / I;
10      리턴 ANS; 
11  }
 12  INT의 주 () {
13      는 scanf ( " %의 D " , t);
14 일      동안 (t-- ) {
 15          는 scanf ( " % D % D % D " , N, X, Y);
16          ANS = 0 ;
(17)          에 대한이 ( int로 I = 0 ; I <N이 나 ++ ) {
 18              는 scanf ( " %의 D " , & A [I]);
19              X + = A [I];
(20)              Y + = A [I];
(21)              A는 [내가] = A [i]는 * 2 ;
(22)         }
 (23)          에 대해 ( int로 I = 0 ; I는 (< 1 << N) 내가 ++ ) {
 24              INT p = 1 , S = 0 ;
25               ( INT의 J = 0 , N J <; J ++ )
 (26)                  의 경우 (I & ( 1 << J)) {
 27                      P * = - 1 ;
28 개                      (S) + = A [J];
29                  }
 30              ANS + = P *의 (CALC (YS) -calc (X- S));
31          }
 32         위한 ( int로 I = 0 ; I <N은, 내가 ++) ANS / = A [I];
33          의 printf ( " % .9Lf \ n을 " , ANS);
34      }
 35 }
코드보기

 

추천

출처www.cnblogs.com/PYWBKTDA/p/11725927.html