网易游戏 数据挖掘笔试 第二题 有谁AC了?

很简单 HMM前向算法  代码感觉没问题 但结果就是不对  有谁AC了吗   求讨论?  
全部评论
我也是
点赞 回复 分享
发布于 2017-09-09 22:30
是不是精度老是不对…
点赞 回复 分享
发布于 2017-09-09 22:31
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,浪费了半个多小时,吐血
点赞 回复 分享
发布于 2017-09-09 22:32
老铁,咋样了。我第二题A了。。第一题30%,报段错误,我真瞎 了,找不出错误。。第三题,本地测,各种可以,上线挂。第四题,看不懂。
点赞 回复 分享
发布于 2017-09-09 22:49
谁AC了第三道题啊,求思路!!!!
点赞 回复 分享
发布于 2017-09-09 22:53
我只收到线下笔试通知,是没过的意思?
点赞 回复 分享
发布于 2017-09-10 09:57

相关推荐

走不到的路就这样算了吗:大佬硬气
点赞 评论 收藏
分享
过往烟沉:我说什么来着,java就业面就是广!
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务