当前位置: 首页 > 面试题库 >

双分法行为错误

严修谨
2023-03-14
问题内容

我有一个HashMapList<String, Intger> wordFreqMapsizeIS234

wordFreqMap = {radiology=1, shift=2, mummy=1, empirical=1, awful=1, geoff=1, .......}

我想计算term frequency每个单词的。

term frequency = frequency of term / total number of terms

public static Map<String, Double> getTFMap (Map<String, Integer> wordFreqMap)
    {
        Map<String, Double> tfMap = new HashMap<String, Double>();
        int noOfTerms = wordFreqMap.size();
        Double tf;

        for (Entry<String, Integer> word : wordFreqMap.entrySet() ) 
        {
                tf = (double) ( word.getValue() / noOfTerms );
                tfMap.put(word.getKey(), tf );
        }
        return tfMap;
    }

我的问题是,tfMap返回{radiology=0.0, shift=0.0, mummy=0.0, empirical=0.0, awful=0.0, geoff=0.0, .....}

我不明白为什么0.0每学期都会回来。我如何解决它?

我应该得到类似 {radiology=0.00427, shift=0.00854, ...}


问题答案:

您正在执行整数除法,然后键入强制转换:

tf = (double) ( word.getValue() / noOfTerms );
                ^-----integer division----^

类型转换将除法中的元素之一转换为浮点除法:

tf = ((double)word.getValue()) / noOfTerms;


 类似资料:
  • 我有这个错误 根据代码 -- 例如,当我不通过将其声明为全局来捕获时,它就可以工作。但是当我在我的函数g范围内声明时,会显示此错误。 您知道问题是什么吗?我如何通过将保持在我的函数本地来解决问题?

  • 日安! 我有一个jTable,我正在用JButton监听器填充它。在通过鼠标双击填充jTable之后,我调用JoptionPane.ShowMessageDialog。在那个问题解决之后。再次单击JButton后,jTable将再次填充。如果我再次双击Row\Cell,它将显示JOptionPane的2条消息,而不是一条。据我所知,我需要刷新模型,但我没有成功。 我的代码: form.java 我

  • 我正在实现一个类似于队列的双链接列表。因此,当我向列表中添加节点(例如5个节点)并清空列表并尝试向列表中添加新节点时,会出现分段错误(核心转储)。我不知道它为什么这么做。你能解释一下吗?

  • 我有一个家庭作业要写“先到先得”和“循环模拟”并比较它们。我开始创建一个链表来制作事件列表。我制作了插入和打印列表函数,但无法使其工作。我的朋友告诉我使用双链表,所以我重新创建了链表,并试图使插入函数工作。我修复了大部分问题,但现在找不到插入函数的错误。当我比较是否插入指针数据和当前指针数据时,While循环语句出现分段错误。我已经阅读了我的C语言书,书中的代码与我的代码相似,并且还通过了双链表分

  • 问题内容: GNU手册页定义了当使用相同的指针(先前由分配)两次调用时,“发生未定义的行为”。 那是什么样的行为? 在哪里可以找到有关这种错误的更多信息? 问题答案: “未定义的行为”仅表示不需要以任何特定方式处理该情况的实现; 任何 行为或结果均被视为“正确”。 多次对指针进行操作的结果取决于; 的基础实现;结果可能是崩溃和核心转储,或者可能破坏竞技场(破坏将来的分配/释放),或者可能完全忽略双

  • 问题内容: 我不小心写了一个Java语句,结尾有两个分号。Java编译器不显示任何错误,它可以运行。 码: 出于学习目的,我尝试在分号后添加不同的字符,并且Java编译器已将编译时错误显示为 令牌“)”上的语法错误,请删除此令牌 。 这个说法: 为什么Java将分号和其他字符视为不同? 问题答案: 因为双分号不会被视为双分号,而是会被视为分号和空语句。空的语句不执行任何操作,这不是错误。