확률 문제: 귀속과 여러 차례의 시험 시뮬레이션을 이용한 분석
srand( (unsigned)time( NULL ) );
int n = 0;
for(int i=0; i<100000; i++)
{
char x[] = {1, 1, 1, 1, 1, 2, 2, 2, 2};//5 5 1 4 4 2
int a = 0; //
int b = 0; //
for(int j=0; j<3; j++) // 3 3
{
int k = rand() % (9-j); // 9-j
if(x[k]==1)
a++;
else
b++;
x[k] = x[9-j-1]; //
}
if(a==1 && b==2) n++;// 1 2
}
printf(" =%f
", n/100000.0*100);
인스턴스 2
#define N 30
......
int a[N];
srand( time( NULL ) );
int n = 0;
for(int k=0; k<10000; k++)
{
for(int i=0; i a[i] = rand() % 365;
bool tag = false; //
for(i=1; i {
for(int j=0; j {
if(a[i]==a[j])
{
tag = true;
break;
}
}
if(tag) break;
}
if(tag) n++;
}
printf("%f
", 1.0 * n / 10000 * 100);
귀속: 어떤 자루에 붉은 공 m개, 흰 공 n개가 있다.이제 공 x개를 꺼내야 한다.적구의 수가 백구보다 많은 확률
다음 코드가 이 문제를 해결했다.그중의 y는 붉은 공이 적어도 나타난 횟수를 나타낸다.
이것은 앞의 문제와 등가이다.공을 30개 뽑으면 흰 공 수보다 빨간 공 수가 많으면 최소 16개를 뽑는 것과 같기 때문이다.
/*
m:
n:
x:
y:
*/
double pro(int m, int n, int x, int y)
{
if(y>x) return 0;
if(y==0) return 1; // y
if(y>m) return 0;
if(x-n>y) return 1; // , , 1
double p1 = pro(m-1,n,x-1,y-1) ;
double p2 = pro(m,n-1,x-1,y);
return (double)m/(m+n) * p1 + (double)n/(m+n) * p2;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.