Shultc
@Shultc
RnD Developer

Вычислить закономерность или игра «Угадайка»

В общем вопрос довольно туманный, но надеюсь я смогу разъяснить:

Есть программа, которая выдаёт 4-6 символов. Назовём их xyzklm.
Есть игрок, который реагирует на эти cиволы, и вводит число. Назовём это число N.
Игрок действует по закономерности, которая известна только ему. Исходя из этой закономерности он и выбирает число N, которое вписывает.

Каким способом программа может, наблюдая за игроком какое-то время, начать предугадывать, какое N он поставит? Какие приёмы для этого нужно использовать? Что-то на подобии нейронных сетей? Или что-то другое?

Пример данных, которыми программа может распологать:
xyzklm = abcdef
N = 5

xyzklm = affae
N = -1

xyzklm = ffda
N = 2

xyzklm = edac
N = 0
и так далее...
  • Вопрос задан
  • 3974 просмотра
Пригласить эксперта
Ответы на вопрос 5
3vi1_0n3
@3vi1_0n3
Может быть я не прав, но тут не обязательно использовать нейронные сети, если закономерность математическая.
Значение символов у нас будет некоторое X, а значение, вводимое человеком — Y.
f(X)=Y
Это самое f можно попробовать найти на основе интерполяции статистических значений.
Если само значение 4-6 символов, то количество таких значений конечно и может быть представлено числовыми значениями. При количестве пар X,Y можно путем интерполяции построить некоторую функцию 2-3 порядка, которая с определенной долей вероятности будет возвращать значение, которое человек будет вводить. При увеличении количества опытов мы можем получить более точные значения. Но, естественно, надо будет учитывать погрешность.
В общем, я думаю, что надо посмотреть в эту сторону
Ответ написан
@gribozavr
oeis.org/

Но в общем случае задача «выяснить закономерность» лишена смысла, так как под любую последовательность можно подогнать много различных «закономерностей», которые дают совершенно различные продолжения.
Ответ написан
Shultc
@Shultc Автор вопроса
RnD Developer
удаоено
Ответ написан
Комментировать
lesobrod
@lesobrod
Не очень понятно, символы случайны, или программа может их генерировать на своё усмотрение?
Если второе, то её действительно можно построить по принципам самообучения нейронных сетей.

И ещё. Если на один и тот же набор символов человек может ответить по-разному,
то программа может составить не интерполяцию, а скорее вероятностную функцию распределения.
Ответ написан
Комментировать
Cyapa
@Cyapa
Нужно учитывать, что никакая интерполяция не справится с задачей, в которой N выбирается не только на основе текущего X (xyzklm), но и на основе предыдущего его значения. Например, если существуют правила:


— Если текущая строка содержит A и предыдущая строка содержала A, то N = 1
— Если текущая строка содержит A, но предыдущая строка не содержала A, то N = 2
...


То эта ситуация уже не может быть описана функциями от одного аргумента. Количество аргументов, конечно, можно увеличить, но и глубина такой зависимости всегда может превысить это количество. Так что, без определенных ограничений на алгоритм, с помощью которого игрок получает значения N, тут не обойтись.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы