概率数学总是输出零?
Probability math always output zero?
所以我创建了一个非常简单的函数来计算重复单词的概率,但我发现概率数组没有被初始化??概率总是0
例如:
String original = "abcabd";
String n = "abcd";
int count = 0;
float Probabilty[] = new float[n.length()];
for( int i = 0 ; i < n.length() ; i++){
for( int j =0 ; j < original.length() ; j++){
if ( n.charAt(i)== original.charAt(j) ){
count = count +1;
}
}
Probabilty[i] = count/original.length();
System.out.println(Probabilty[i]);
count = 0;
}
与以下行有关:
Probabilty[i] = count/original.length();
count
和original.length()
都是整数,所以两者相除使用整数除法。如果您将 1 转换为 float 或 double,那么您将得到正确的除法,如下所示:
Probabilty[i] = ((float)count)/original.length();
有关类似问题,请参阅 How can I convert integer into float in Java?。
所以我创建了一个非常简单的函数来计算重复单词的概率,但我发现概率数组没有被初始化??概率总是0 例如:
String original = "abcabd";
String n = "abcd";
int count = 0;
float Probabilty[] = new float[n.length()];
for( int i = 0 ; i < n.length() ; i++){
for( int j =0 ; j < original.length() ; j++){
if ( n.charAt(i)== original.charAt(j) ){
count = count +1;
}
}
Probabilty[i] = count/original.length();
System.out.println(Probabilty[i]);
count = 0;
}
与以下行有关:
Probabilty[i] = count/original.length();
count
和original.length()
都是整数,所以两者相除使用整数除法。如果您将 1 转换为 float 或 double,那么您将得到正确的除法,如下所示:
Probabilty[i] = ((float)count)/original.length();
有关类似问题,请参阅 How can I convert integer into float in Java?。