Таблица Винклера в Java

Я делаю чат-бота, который ответит вам по ближайшему значению в наборе данных (древовидные карты). Система является аналогом AIML.

Мне нужно сделать таблицу Винклера, которая даст мне массив чисел результата. Как это сделать?

Вот изображение, показывающее, как работает эта таблица: Таблица Винклера в Java

Вы забыли задать вопрос.

Guy 06.12.2018 10:49

Извините, изменил.

nesclass 06.12.2018 10:51

Это кажется очевидным. На каком этапе у вас проблема? Можете показать, что пробовали?

talex 06.12.2018 10:53
Как это сделать? - не большой вопрос. Вам нужно попробовать сделать это самостоятельно и вернуться к тому, что вы пробовали, и объяснить, в чем проблема.
Guy 06.12.2018 10:53

Я просто не знаю, как это сделать, и отправьте запрос здесь, чтобы получить решение.

nesclass 06.12.2018 10:55

Поскольку это довольно тривиальный вопрос для любого java-программиста, ясно, что OP вообще не знает никакого java. Я по крайней мере дал несколько указателей, не написав код на самом деле.

herman 06.12.2018 11:19
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
6
47
2

Ответы 2

Вы можете сделать это за 3 простых шага.

  1. Создайте двумерный массив для матрицы результатов: см. вопрос Синтаксис для создания двумерного массива.

    Размеры, конечно же, должны соответствовать длине ввода и ключа. См. https://docs.oracle.com/javase/10/docs/api/java/lang/String.html#length ().

  2. Перебирайте символы входной строки и ключа как вложенный цикл. См. https://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.14.1 и https://docs.oracle.com/javase/10/docs/api/java/lang/String.html#charAt(int). В основном у вас есть 2 индекса, которые дают вам 2 значения char.

  3. Сравните оба символа с помощью оператора == и сохраните 0 или 1 в двумерном массиве с помощью индексов.

Спасибо, попробую использовать.

nesclass 06.12.2018 11:28

Хорошо, я сделал этот стол. Это выглядит так:

String[] ts = new String[s2.length()];

int[][] table = new int[s1.length()][s2.length()];
char[] s1c = s1.toCharArray();
char[] s2c = s2.toCharArray();

for(int s1cl = 0; s1cl <= s1c.length - 1; s1cl++) {
    for(int s2cl = 0; s2cl <= s2c.length - 1; s2cl++) {
        if (s1c[s1cl] == s2c[s2cl]) {
            table[s1cl][s2cl] = 0;
        } else {
            table[s1cl][s2cl] = 1;
        }
    }
}

for(int ts1 = 0; ts1 <= s1c.length - 1; ts1++) {
    String res = "";
    for(int ts2 = 0; ts2 <= s2c.length - 1; ts2++) {
        res += ts2;
        if (ts2 == s2c.length - 1) {
            ts[ts1] = res;
            res = "";
        }
    }
}

Спасибо "herman" за ответ!

Другие вопросы по теме