关注
import java.text.DecimalFormat;
import java.util.*;
public class Main {
public static double max(double[] array) {
double result = Double.MIN_VALUE;
for(int i = 0; i < array.length; i++) {
if(array[i] > result) {
result = array[i];
}
}
return result;
}
public static int argmax(double[] array) {
int result = 0;
double maxValue = Double.MIN_VALUE;
for(int i = 0; i < array.length; i++) {
if(array[i] > maxValue) {
maxValue = array[i];
result = i;
}
}
return result;
}
public static void main(String[] args) throws IOException {
Scanner in = new Scanner(System.in);
while(in.hasNext()) {
double[] pi = new double[4];
double[][] A = new double[4][4];
double[][] B = new double[4][5];
double prob = 0.0;
for(int i = 0; i < 4; i++)
pi[i] = in.nextDouble();
for(int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++)
A[i][j] = in.nextDouble();
}
for(int i = 0; i < 4; i++) {
for (int j = 0; j < 5; j++)
B[i][j] = in.nextDouble();
}
String a = in.next();
String line = in.nextLine();
line = a + line;
String[] o = line.split(" ");
int[] observe = new int[o.length];
for(int i = 0; i < o.length; i++) {
if(o[i].equals("S"))
observe[i] = 0;
else if(o[i].equals("A"))
observe[i] = 1;
else if(o[i].equals("B"))
observe[i] = 2;
else if(o[i].equals("C"))
observe[i] = 3;
else
observe[i] = 4;
}
double[][] x = new double[observe.length][4];
int T = observe.length;
for(int i = 0; i < 4; i++) {
x[0][i] = pi[i] * B[i][observe[0]];
}
for(int t = 1; t < T; t++) {
for(int i = 0; i < 4; i++) {
double tmp = 0.0;
for(int j = 0; j < 4; j++) {
tmp += x[t - 1][j] * A[j][i];
}
x[t][i] = tmp * B[i][observe[t]];
}
}
prob = x[T - 1][0] + x[T - 1][1] + x[T - 1][2] + x[T - 1][3];
DecimalFormat df = new DecimalFormat("#.0000");
System.out.println(df.format(Math.log10(prob)));
}
}
} 一开始没看清题,写成了Viterbi,浪费了半个多小时,吐血
查看原帖
点赞 4
相关推荐
点赞 评论 收藏
分享
2025-12-15 11:27
门头沟学院 Java 点赞 评论 收藏
分享
鑫鑫向栄:爱你,妈咪 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 为了入行xx岗,我学了__ #
6972次浏览 114人参与
# 你都见过什么样的草台班子? #
9393次浏览 79人参与
# 简历第一个项目做什么 #
8001次浏览 122人参与
# 被说“做题家”,你的反应是_____? #
2851次浏览 79人参与
# 实习的你做了哪些离谱的工作 #
10884次浏览 123人参与
# Prompt分享 #
3188次浏览 90人参与
# 找实习记录 #
37980次浏览 574人参与
# 工作压力大,你会干什么? #
14819次浏览 332人参与
# 从哪些方向判断这个offer值不值得去? #
48655次浏览 342人参与
# AI让你的思考变深了还是变浅了? #
5595次浏览 146人参与
# 如果不上班,你会去做什么 #
8028次浏览 293人参与
# 找工作前vs找工作后的心路变化 #
37275次浏览 301人参与
# 入职以后才知道的校招谎言 #
117184次浏览 746人参与
# 今年秋招还有金九银十吗 #
71384次浏览 502人参与
# 邪修省钱套路 #
8230次浏览 264人参与
# 通信硬件薪资爆料 #
1201845次浏览 7196人参与
# 如果让你发明个APP,你会想做什么 #
2406次浏览 57人参与
# 校招入职后的感受 #
466447次浏览 3628人参与
# 如果重来一次你还会读研吗 #
216707次浏览 1992人参与
# 小厂实习有必要去吗 #
78232次浏览 369人参与


