3517 - 你画我猜
“你们不好好学习ACM,整天想着开好挖掘机,和蓝翔新东方还有什么区别!”
盛夏静谧的午后,一阵聒噪的蝉声响起,群里的小兰告别了代码世界。
小兰离开后,代码世界的人们对她仅有的记忆就是……你画我猜。
这是几年前出现的一个很神奇的游戏,直到现如今也有不少人在玩。至于玩法呢,就是围一桌人,一个人拿到题目,把它画下来,然后其他人根据提示去猜那是什么。
但是玩过的人都知道,这个游戏是有词库的。也就是说,题目一定不会出在词库中的词之外。所以,即便你完全不知道画的人在画什么,也是有机率猜到的(虽然这个机率可能很小)。
现在就请你来计算一下这个概率,如果词库中有x个词,这x个词你全都记住了,你在完全看不懂画的人画的是什么的情况下,每次随机从这x个词中猜一个词,一共猜了m次,请问你有多大的机率可以猜中呢?
“这其实是个数学题!”小兰说道。
题目输入
第一行有一个整数n,代表输入实例有n组。接下来的n行,每行两个整数x(1<=x<=10000),m(1<=m<=100),分别代表词库中的词数和你猜的次数。
题目输出
对于每组输入实例,请输出你猜中的概率,结果保留4位小数。
输入/输出样例
题目输入
2 3 1 2 2
题目输出
0.3333 0.7500
C语言解答
#include <stdio.h> #include <math.h> int main() { int t = 0; scanf("%d", &t); while(t--) { int a, b; scanf("%d%d", &a, &b); double r = 0.0; for(int i = 0; i < b; i ++) { r += (1.0/a) * pow(1.0-(1.0/a),i); } printf("%.4f\n", r); } return 0; }
C++解答
#include <stdio.h> #include <math.h> #include <iostream> #include <fstream> #include <iomanip> using namespace std; int main(void) { // ifstream cin; // ofstream cout; // cin.open("e.in"); // cout.open("e.out"); int n; cin>>n; while(n--) { double x,m; cin>>x>>m; cout<<setiosflags(ios::fixed)<<setprecision(4)<<1-pow(1-1/x,m)<<endl; } return 0; }