Java Новичок не может сделать простую математику, ошибка оператора - PullRequest
1 голос
/ 13 мая 2010

Здесь я пытаюсь сделать что-то действительно базовое, но мое отсутствие понимания Java вызывает у меня некоторые проблемы.

<code>
double[][] handProbability = new double[][] {{0,0,0},{0,0,0},{0,0,0}};
double[] handProbabilityTotal = new double[] {0,0,0};
double positivePot = 0;
double negativePot = 0;
int localAhead = 0;
int localTied = 1;
int localBehind = 2;
//do some stuff that adds values to handProbability and handProbabilityTotal</p>

<p>positivePot = 
   (handProbability[localBehind][localAhead] + 
   (handProbability[localBehind][localTied] / 2.0) + 
   (handProbability[localTied][localAhead] / 2.0) ) / 
   (handProbabilityTotal[localBehind] + (handProbability[localTied] / 2.0));</p>

<p>negativePot = 
    (handProbability[localAhead][localBehind] + 
       (handProbability[localAhead][localTied] / 2.0) + 
          (handProbability[localTied][localBehind] / 2.0) ) / 
    (handProbabilityTotal[localAhead] + (handProbabilityTotal[localTied] / 2.0));

Последние две строки вызывают у меня проблемы (извините за их длительность). Ошибки компилятора:

<code>
src/MyPokerClient/MyPokerClient.java:180: operator / cannot be applied to double[],double
            positivePot = ( handProbability[localBehind][localAhead] + (handProbability[localBehind][localTied] / 2.0) + (handProbability[localTied][localAhead] / 2.0) ) / (handProbabilityTotal[localBehind] + (handProbability[localTied] / 2.0) );
                                                                                                                                                                                                                                             ^
src/MyPokerClient/MyPokerClient.java:180: operator + cannot be applied to double,
            positivePot = ( handProbability[localBehind][localAhead] + (handProbability[localBehind][localTied] / 2.0) + (handProbability[localTied][localAhead] / 2.0) ) / (handProbabilityTotal[localBehind] + (handProbability[localTied] / 2.0) );
                                                                                                                                                                                                 ^
src/MyPokerClient/MyPokerClient.java:180: operator / cannot be applied to double,
            positivePot = ( handProbability[localBehind][localAhead] + (handProbability[localBehind][localTied] / 2.0) + (handProbability[localTied][localAhead] / 2.0) ) / (handProbabilityTotal[localBehind] + (handProbability[localTied] / 2.0) );

Не совсем уверен, в чем проблема. Вам не нужно ничего особенного для базовой математики, верно?

Ответы [ 3 ]

3 голосов
/ 13 мая 2010

В строке перед последней строкой есть проблема.

positivePot = 
   (handProbability[localBehind][localAhead] + 
   (handProbability[localBehind][localTied] / 2.0) + 
   (handProbability[localTied][localAhead] / 2.0) ) / 
   (handProbabilityTotal[localBehind] + (handProbability[localTied] / 2.0));

handProbability - это двумерный двойной массив. Итак, handProbability [localTied] - это массив значений типа double. это не двойное значение. Исходя из вашей последней строки, я думаю, что это должно быть handProbabilityTotal [localTied].

3 голосов
/ 13 мая 2010

В последней части первой строки (handProbability[localTied] / 2.0) вы пытаетесь разделить массив (hardProbability[localTied]) вместо числа (одно из его значений).

1 голос
/ 13 мая 2010

Поскольку handProbability является многомерным массивом, невозможно разделить массив на число:

handProbability[localTied] / 2.0

Конечно, выдает ошибку. Исправьте эту строку. Вы, наверное, имели в виду handProbabilityTotal?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...