钓鱼概率问题GDUFE

/*
钓鱼概率问题:
又到了万物复苏的春天!活蹦乱跳的大鱼在沁湖各展风姿,GDUFE 的渔夫全都迫不及待地来钓鱼了,
Baby O 也是其中之一。
其中,沁湖里有 n条鱼,来参加比赛的渔夫(包括Baby O自己)一共有 m 个,
每条鱼被钓到的可能性相同。
Baby O是一个贪心的人,他想要把沁湖所有的鱼全部独吞,但是他不知道自己有多大把握能全部钓上来,
现在需要你求这个概率。
输入
共一行。
第一行输入两个数字 n,m(1≤n,m≤5),分别代表鱼的数量和渔夫的数量。
输出
共一行。
以最简分数的形式(形如 1/2,2/3,1/1) 输出答案。
样例
输入
2 2
输出
1/4
输入
1 2
输出
1/2
*/

//分析: 每条鱼被Baby o抓到的概率为 1/m  Baby o 抓到所有鱼的概率为(1/m)^n

思路:

  1. 概率计算

    • 由于每个渔夫(包括 Baby O)钓到每条鱼的概率是均等的,所以每条鱼被 Baby O 钓到的概率是 1/m。
    • Baby O 想要钓到所有的鱼,那么每条鱼都必须被 Baby O 钓到。对于每条鱼,这个事件是独立的,因此总的概率是这些概率的乘积。
  2. 总的概率公式

    • 假设有 n 条鱼,m 个渔夫,那么 Baby O 钓到所有 n 条鱼的概率是 =(1/m)^n。
  3. 最简分数

    • 要以最简分数形式输出结果,需要计算分子的 mnm^nmn 次方,并将其作为分子,分母为 1,然后进行约分。

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int n, m, i, j = 1;
	scanf("%d %d", &n, &m);
	if (n <= 0 || n > 5 || n <= 0 || m > 5) {//题目要求1<=n,m<=5
		exit(0);
	}
	for (i = 0; i <= n; i++) {
		j* m;
	}
	printf("1/%d", j);
	return 0;
}
#include<stdio.h>

// 计算最大公约数 分母和分子约分
int gcd(int a, int b) { //以 8,4举例子
	while (b != 0) {// 4 8
 		int temp = b;//8  4
		b = a % b;// 4    0
		a = temp;//8      4
	}
	return a;//4
}
int main()
{
	int n, m;
	scanf("%d %d", &n, &m);

	int numberator = 1;
	int denominator = 1;

	//分母是m的n次方
	for (int i = 0; i < n; i++) {
		denominator *= m;
	}

	//计算分子和分母的最大公约数
	int divisor = gcd(numberator, denominator);

	// 用最大公约数约分
	numberator /= divisor;
	denominator /= divisor;

	//输出最简分数
	printf("%d/%d", numberator, denominator);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值