神、上帝以及老天爷

 

全错概率 = 错误的情况 / 全部的情况

1. 全部的情况为 n!
2. 对错误的情况进行讨论:

(1) 要保证全错,第一个必然不能拿到自己的名字,所以第一个人有(n-1)中选择。
(2) 第二个人如果拿的是第一个人的名字,就变成了求 (n-2) 人全错的概率,如果拿的不是第一个人的名字,就变成了求 (n-1) 人全错的概率

使用错排公式a[i] = (i - 1) * (a[i - 1] + a[i - 2]);
---------------------
作者:烂草人
来源:CSDN
原文:https://blog.csdn.net/qq_43484605/article/details/86759494
版权声明:本文为博主原创文章,转载请附上博文链接!

#include <cstdio>

double memo[40];

double f(int n)
{
	memo[2] = 1;
	memo[3] = 2;
	
	for(int i = 4; i <= n; ++ i)
	{
		memo[i] = (i - 1) * (memo[i - 2] + memo[i - 1]);
	}
	
	return memo[n];
}

double fun(int n)
{
	double sum = 1;
	
	for(int i = 1; i <= n; ++ i)	 sum *= i;
	
	return sum;
}

int main()
{
	int n, m;
	double res;
	scanf("%d", &n);
	while(n --)
	{
		scanf("%d", &m);
		res = f(m) / fun(m);
		printf("%.2f%%\n", res*100);
	}
	
	return 0;
}

  

 

转载于:https://www.cnblogs.com/mjn1/p/11290657.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值