最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

印章

IT圈 admin 29浏览 0评论

印章

共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。

 

输入格式:

 一行两个正整数n和m。1≤n,m≤20

 

输出格式:

一个实数P表示答案,保留4位小数。

 

输入样例:

在这里给出一组输入。例如:

 

2 3

输出样例:

在这里给出相应的输出。例如:

 

0.7500

 

代码

nm = list(map(int,input().split()))

n = nm[0]

m = nm[1]

rect = [[0 for _ in range(0,n)] for _ in range(0,m)]

#拥有一张时,拥有一张的概率必为1

rect[0][0] = 1

for i in range(1,m):

    rect[i][0] = (1/n)**i

for i in range(1,m):

    for j in range(1,n):

        rect[i][j] = rect[i-1][j]*((j+1)/n) + rect[i-1][j-1]*((n-j)/n)

print("%.4f" % rect[-1][-1])

印章

共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。

 

输入格式:

 一行两个正整数n和m。1≤n,m≤20

 

输出格式:

一个实数P表示答案,保留4位小数。

 

输入样例:

在这里给出一组输入。例如:

 

2 3

输出样例:

在这里给出相应的输出。例如:

 

0.7500

 

代码

nm = list(map(int,input().split()))

n = nm[0]

m = nm[1]

rect = [[0 for _ in range(0,n)] for _ in range(0,m)]

#拥有一张时,拥有一张的概率必为1

rect[0][0] = 1

for i in range(1,m):

    rect[i][0] = (1/n)**i

for i in range(1,m):

    for j in range(1,n):

        rect[i][j] = rect[i-1][j]*((j+1)/n) + rect[i-1][j-1]*((n-j)/n)

print("%.4f" % rect[-1][-1])

发布评论

评论列表 (0)

  1. 暂无评论