关注
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
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
03-07 13:32
门头沟学院 C++ 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 实习要如何选择和准备? #
49538次浏览 778人参与
# 学历or实习经历,哪个更重要 #
90298次浏览 650人参与
# 大疆求职进展汇总 #
473980次浏览 3182人参与
# 摸鱼被leader发现了怎么办 #
46361次浏览 321人参与
# 潍柴工作体验 #
22232次浏览 18人参与
# 你最满意的offer薪资是哪家公司? #
20528次浏览 120人参与
# 如果可以,你希望哪个公司来捞你 #
69530次浏览 293人参与
# 你觉得通信/硬件有必要实习吗? #
97007次浏览 893人参与
# Offer比较,求稳定还是求发展 #
44082次浏览 228人参与
# 来聊聊机械薪资天花板是哪家 #
114828次浏览 721人参与
# 硬件兄弟们 甩出你的华为奖状 #
97834次浏览 670人参与
# 找工作,行业重要还是岗位重要? #
22239次浏览 384人参与
# 金融财会交流会 #
103421次浏览 361人参与
# 机械人与华为的爱恨情仇 #
107907次浏览 923人参与
# 24届硬件人与华为的爱恨情仇 #
122490次浏览 962人参与
# 机械人怎么评价今年的华为 #
192917次浏览 1502人参与
# 运营面经 #
103621次浏览 1202人参与
# 外包能不能当跳板? #
27616次浏览 192人参与
# 实习工作,你找得还顺利吗? #
397393次浏览 5426人参与
# 国企/银行/研究所公司爆料 #
126287次浏览 742人参与