2020 被风吹过的夏天

描述

2008年,那个被风吹过的夏天,恰同学少年的日子,青涩的年华,却再也回不去了...

我幸运地认识了你,或许是前世五百次的回眸~ 或许比这还多。

我们有时候都会去教室上晚自习,我们住在不同的宿舍(当然),然而,幸运的是,我们去上晚自习时都要经过校园里那个熟悉的路口,那个转角,

然而不幸的是,你我都不总是每天都去自习,我也鼓不起勇气,问你什么时候会去上自习,所以,我可能不可以每天都在那个路口遇到你,尽管我每次去上自习时,都会以最早的时间在那个路口等你最长的时间,所以我知道,只要我们同一天去自习,我就可以在那个转角的路口遇到你,然后上前对你说:“嗨,这么巧~”。

你只告诉过我,你一星期里有几天晚上会去自习,我想知道,我有多少概率会在那个转角遇到你。

一星期有7天(最多7次晚自习),给出我每天去不去上晚自习的情况,然后给出你一星期里上晚自习的天数m(0<=m<=7),假设你选择这7天里哪m天去上晚自习是等概率的,也就是说,你选择集合Set1:

Set1={D1,D2,…,Di,…,Dm}(1<=Di<=7,Di互不相同,1<=i<=m)

还是选择另一个和Set1不同的集合Set2:

Set2={B1,B2,…,Bi,…,Bm}(1<=Bi<=7,Bi互不相同,1<=i<=m)

作为去自习的日子是等概率的。

输入

多组测试数据,每组测试数据有两行。第一行有一个整数m(0<=m<=7)表示你一星期里去晚自习的天数,第二行有7个整数Qi(1<=i<=m,Qi=0,1),如果Qi为0,表示第i天我不去自习,否则(Qi=1),则表示第i天我回去自习。

输出

对每组测试数据输出一行,即我能遇到你的概率,保留3位小数。

样例输入
1
1 0 0 0 0 0 0
样例输出
0.143
 
   
数学题
#include<iostream>
#include<iomanip>
using namespace std;

bool a[ 7 ];
bool b[ 7 ];
int sum;

int s2;
int m;


void work( int k, int t )
{
if ( t == m && k <= 7 )
{
   s2++;
   bool flag = false;
   for ( int i = 0; i < 7; i++ )
   {
    if ( a[ i ] ==1 && b[ i ]== 1 )
    {
     flag = true;
    }
   }

   if ( flag == false )
    sum++;
}
else if ( k == 7 )
{

}
else
{

   work( k+1, t);
   b[ k ] = 1;
   work( k+1, t+1 );
   b[ k ] = 0;
}
}

int main()
{

while (cin >> m)
{
sum = 0;
s2 = 0;

for ( int i = 0; i < 7; i++ )
{
   cin >> a[ i ];
   b[ i ] = 0;
}

work( 0, 0 );

cout <<fixed<<setprecision(3)<< 1- ((double)sum / s2)<< endl;
}
return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值