蓝桥杯 印章Java

编程入门 行业动态 更新时间:2024-10-28 10:28:48

蓝桥杯 <a href=https://www.elefans.com/category/jswz/34/1732343.html style=印章Java"/>

蓝桥杯 印章Java

资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
  共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。
输入格式
  一行两个正整数n和m
输出格式
  一个实数P表示答案,保留4位小数。
样例输入
2 3
样例输出
0.7500
数据规模和约定
  1≤n,m≤20

import java.io.BufferedInputStream;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(new BufferedInputStream(System.in));//输入n和mint n = in.nextInt();int m = in.nextInt();//定义p代表每一次的概率double p = 1.0 / n;//定义dp数组 dp[m][n] 买m张凑齐n种double[][] dp = new double[m + 1][n + 1];//i代表买了i张 j代表凑齐j种for (int i = 1; i <= m; i++) {for (int j = 1; j <= n; j++) {//因为i<j 不可能买了i张凑齐j种 所以dp=0;if (i < j) {dp[i][j] = 0;} else if (j == 1) {//如果j=1 买了i张凑齐j种 所以dp=p的i-1次方dp[i][j] = Math.pow(p, i - 1);} else {//其他情况 买了i张凑齐j种 第i张有两种情况 第一种和之前凑齐的一样 第二种和之前凑齐的不一样dp[i][j] = dp[i - 1][j] * (j * p) + dp[i - 1][j - 1] * ((n - j + 1) * p);}}}System.out.printf("%.4f", dp[m][n]);}
}

欢迎大家订阅微信公众号 小羊知识百科
不定时更新全网各类免费资源,电影,软件,中外文献等等
赶紧薅羊毛啦!!

更多推荐

蓝桥杯 印章Java

本文发布于:2023-06-28 05:51:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/922724.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:印章   蓝桥杯   Java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!