你能出一道原创的,提高级难度的概率题并给出C++的标准程序和题解吗?
时间: 2023-05-10 10:56:10 浏览: 123
c++程序设计谭浩强课后习题答案
当然可以!以下是一道原创的概率题:
假设有一个有限的整数集合 S,其中每个元素都是从 1 到 n 的整数。现在我们从 S 中随机选择两个元素,不放回,求它们的和为偶数的概率。
解题思路:
首先,我们可以将 S 中的元素分为两类:奇数和偶数。那么,两个元素的和为偶数,有以下三种情况:
1. 两个奇数相加得到偶数
2. 两个偶数相加得到偶数
3. 一个奇数和一个偶数相加得到偶数
对于第一种情况,我们可以从奇数中任选两个元素,得到的概率为 C(n/2, 2) / C(n, 2)。
对于第二种情况,我们可以从偶数中任选两个元素,得到的概率为 C(n/2, 2) / C(n, 2)。
对于第三种情况,我们可以从奇数中任选一个元素,从偶数中任选一个元素,得到的概率为 (n/2 * n/2) / C(n, 2)。
因此,两个元素的和为偶数的概率为:
C(n/2, 2) / C(n, 2) + C(n/2, 2) / C(n, 2) + (n/2 * n/2) / C(n, 2)
C 的标准程序:
#include <stdio.h>
int main() {
int n;
printf("请输入整数集合 S 的大小 n:");
scanf("%d", &n);
double p = (double)(n/2 * n/2 + n/2 * (n - n/2) + (n - n/2) * n/2) / (double)(n * (n - 1) / 2);
printf("两个元素的和为偶数的概率为:%lf\n", p);
return 0;
}
题解:
假设 S 中有 m 个奇数,n-m 个偶数。则 S 中任选两个元素,不放回,共有 C(n, 2) 种情况。
对于第一种情况,从 m 个奇数中任选两个元素,共有 C(m, 2) 种情况。
对于第二种情况,从 n-m 个偶数中任选两个元素,共有 C(n-m, 2) 种情况。
对于第三种情况,从 m 个奇数中任选一个元素,从 n-m 个偶数中任选一个元素,共有 m*(n-m) 种情况。
因此,两个元素的和为偶数的概率为:
C(m, 2) + C(n-m, 2) + m*(n-m) / C(n, 2)
化简得:
(m^2 + (n-m)^2 + m*(n-m)) / (n*(n-1)/2)
代入 m=n/2,得:
n^2 / (2*n*(n-1)/2) = n / (n-1)
因此,两个元素的和为偶数的概率为 n/(n-1)。
阅读全文