有N个骰子,同时投掷出去,向上面的数字之和为 A。
那么输入为N个筛子,请计算出A,和他出现的概率。
概率值,小数点保留5
位。
输入描述:
N,骰子数目
输出描述:
[[``1``,
0.16667``], [``2``,
0.16667``], [``3``,
0.16667``], [``4``,
0.16667``], [``5``,
0.16667``], [``6``,
0.16667``]]
输出为二维数组。每一个值,第一个表示数字, 第二个表示概率。
示例1
输入
1
输出
[[1,
0.16667], [2,
0.16667], [3,
0.16667], [4,
0.16667], [5,
0.16667], [6,
0.16667``]]
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
while(scanner.hasNext()){
int N=scanner.nextInt();
int[][] dice=new int[N+1][6*N+1];
for(int i=1;i<=6;i++)
dice[1][i]=1;
for(int i=2;i<=N;i++)
for(int j=N;j<=6*N;j++)
for(int k=1;j-k>0 && k<=6;k++) {
dice[i][j] += dice[i-1][j - k];
}
double total=Math.pow(6,N);
ArrayList<ArrayList<String>> list=new ArrayList<>();
for(int i=N;i<=6*N;i++){
ArrayList<String> item=new ArrayList<>();
item.add(Integer.toString(i));
item.add(String.format("%.5f",dice[N][i]/total));
list.add(item);
}
System.out.println(list.toString());
}
scanner.close();
}
}
网友评论