Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Быки и Коровы

1.9K
12 ноября 2003 года
MishaSoft
48 / / 16.09.2003
Помогите студенту.

Виноват я, гулял много. А в пятницу сдавать надо , и времени, блин, нету (работа).
Может кто-то когда-то делал эту игрушку. Подкинте алгоритм плиииииииииз.X)
267
12 ноября 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by MishaSoft
Помогите студенту.

Виноват я, гулял много. А в пятницу сдавать надо , и времени, блин, нету (работа).
Может кто-то когда-то делал эту игрушку. Подкинте алгоритм плиииииииииз.X)



Что значит алгоритм?

Тебе надо правила игры?
Или чтоб ты отгадывал числа, а комп тебе говорил "2 быка 2 коровы"?
Или чтоб комп отгадывал числа, а ты ему говорил "2 быка 2 коровы"?
Или создать игровой сервер с миничатом, чтобы чуваки из разных стран друг с другом играли?

258
12 ноября 2003 года
SergeySV
1.5K / / 19.03.2003
Наверное он не знает как сравнить две строки посимвольно со сравнением их позиции в слове... но я конечно тоже не телепат, пока :angel:
1.9K
13 ноября 2003 года
MishaSoft
48 / / 16.09.2003
[QUOTE]Originally posted by Cutty Sark


Что значит алгоритм?

Тебе надо правила игры?


Да НЕТ! Алгоритм - Чтобы человек загадал число, а компьютер отгадывал. Человек возвращает число быков и коров, а программа методом... любым методом, кроме перебора, пытается отгадать.

Алгоритм можно в любом виде включая Basic, C, Pascal, или любая другая форма.:{
258
13 ноября 2003 года
SergeySV
1.5K / / 19.03.2003
Попахивает искусственным интелектом... :roll:

Кстати по идее здесь все равно будет перебор, токо с накоплением статистических данных и учетом вероятности.
267
13 ноября 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by SergeySV
Попахивает искусственным интелектом... :roll:

Кстати по идее здесь все равно будет перебор, токо с накоплением статистических данных и учетом вероятности.



Да, делай топориком.

1. Выбираем случайное 4-хзначное число.
2. Получаем ответ пользователя.
3. Выбрасываем из рассмотрения те числа, которые не удовлетворяют условию.
4. Переходим к п.1

Этот метод не будет оптимальным в плане отгадывания за наименьшее число ходов. Зато его писать несложно.

1.9K
13 ноября 2003 года
MishaSoft
48 / / 16.09.2003
Серж абсолютно прав. Это и есть самый что ни есть настоящий искусственный интелект (Artificial Intellect), курс так и называется.

Надумал вот алгоритм отгадывающий за 10 ходов при условии что говорится о 4-х значном числе, каждая цифра от 0 до 9, и нет повторяющихся цифор. Прога сначала запрашивает 7 вариантов - от 0123,01234...0129. По изменению ответов человека за первые 7 интеграций определяет все 4 чифры, причем одна из них точно Бык (ну и остальные коровы). Потом еще максимум за 3 интеграции находит ответ. Профессор забраковал - говорит что первые 7 ин-ций это перебор. С рекурсией советует делать. Голова пухнет. ПОМОГИТЕ!!! X)-
267
13 ноября 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by MishaSoft
Серж абсолютно прав. Это и есть самый что ни есть настоящий искусственный интелект (Artificial Intellect), курс так и называется.

Надумал вот алгоритм отгадывающий за 10 ходов при условии что говорится о 4-х значном числе, каждая цифра от 0 до 9, и нет повторяющихся цифор. Прога сначала запрашивает 7 вариантов - от 0123,01234...0129. По изменению ответов человека за первые 7 интеграций определяет все 4 чифры, причем одна из них точно Бык (ну и остальные коровы). Потом еще максимум за 3 интеграции находит ответ. Профессор забраковал - говорит что первые 7 ин-ций это перебор. С рекурсией советует делать. Голова пухнет. ПОМОГИТЕ!!! X)-



Ну я ж тебе описал алгоритм. Повторяю подробнее.
Создаешь массив всех возможных вариантов.
В начале у тебя их будет 10*9*8*7 = 5040 штук

Дальше повторяешь в цикле (рекурсией или не рекурсией - это уже не важно) следующие операции:
1. Выбираешь случайное число из массива.
2. Задаешь пользователю, получаешь ответ.
3. Выбрасываешь из массива те числа, которые не удовлетворяют ответу пользователя.

И так до тех пор, пока в массиве не останется одно число (если останется 0 - значит где-то пользователь ошибся).

Пример:
Первый запрос: 1234 Ответ: 2 быка 2 коровы.
После первого запроса из 5040 вариантов останется только шесть:
2134
3214
4231
1324
1432
1243

Допустим следующий ход: 4231 Ответ 1б 3к
Остаются:
2134
3214
1432
1243

Ходим: 3214 Ответ: 4к
Остаются:
1432

Ходим: 1432 Ответ: 4 быка, давайте зачетку.

258
13 ноября 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by MishaSoft
Серж абсолютно прав. Это и есть самый что ни есть настоящий искусственный интелект (Artificial Intellect), курс так и называется.

Надумал вот алгоритм отгадывающий за 10 ходов при условии что говорится о 4-х значном числе, каждая цифра от 0 до 9, и нет повторяющихся цифор. Прога сначала запрашивает 7 вариантов - от 0123,01234...0129. По изменению ответов человека за первые 7 интеграций определяет все 4 чифры, причем одна из них точно Бык (ну и остальные коровы). Потом еще максимум за 3 интеграции находит ответ. Профессор забраковал - говорит что первые 7 ин-ций это перебор. С рекурсией советует делать. Голова пухнет. ПОМОГИТЕ!!! X)-



Причем тут рекурсия - это всего лишь метод написания алгоритма, можешь циклом, можешь рекурсий, но как было у тебя первые 7 иттераций так и останется, какая разница...

Тут надо учить алгоритм действовать по принципу человека, т.е. пытаться угадать, учить строить догадки, предположения

258
13 ноября 2003 года
SergeySV
1.5K / / 19.03.2003
А если на 1234 будет 2 коровы, т.е. загадано число 6712

Тут уже просто так не выкинешь какие-то определенные числа... я думал мы такую задачу решаем
258
13 ноября 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by SergeySV
А если на 1234 будет 2 коровы, т.е. загадано число 6712

Тут уже просто так не выкинешь какие-то определенные числа... я думал мы такую задачу решаем



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

267
13 ноября 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by SergeySV
А если на 1234 будет 2 коровы, т.е. загадано число 6712

Тут уже просто так не выкинешь какие-то определенные числа... я думал мы такую задачу решаем



Сереж, ты меня неправильно понял. Выкидываем числа, а не цифры. Метод, описанный выше, универсальный (хотя и не оптимальный с точки зрения минимального количества ходов, я могу предложить и поинтереснее). Просто выписывать все числа, которые удовлетворяют ходу 1234=2к, показалось мне напряжным :)

1.9K
14 ноября 2003 года
MishaSoft
48 / / 16.09.2003
[QUOTE]Originally posted by Cutty Sark


Ну я ж тебе описал алгоритм....

Довольно Оригинальное решение. Сейчас как раз пытаюсь воплотить его в жизнь. Правда не знаю на сколько это можно назвать интеллектом. Мы пользуемся тем что комп может перебрать 5040 вариантов за несколько секуд. Ты бы смог играть по такому алгоритму? Посмотрим, может прокатит, опций все равно особо не остается. Попросил перенести сдачу на воскресение (у нас это рабочий день :( ). Либо Пан либо пропал
267
14 ноября 2003 года
Cutty Sark
1.2K / / 17.10.2002
А что ты хочешь? Вот сейчас Каспаров играет в Нью-Йорке с очередным компьютером. Шахматные программы пишутся уже пару десятилетий. И все равно они используют характерную черту компьютера "туп, но трудолюбив". Никакой тебе суперкомпьютерной интуиции. 50000000 вариантов с полным перебором ходов на 7 вперед и основными линиями ходов на 20, дебютная библиотека на сотню тысяч партий. Так что не стоит относиться к вышеописанному алгоритму снисходительно.
Кстати, оптимальный алгоритм (о котором я упоминал в предыдущих постах) тоже будет основан на переборе (причем еще большем!).
1.9K
17 ноября 2003 года
MishaSoft
48 / / 16.09.2003
Cutty Sark! Ты просто молодчина! Зачетка в кармане, Прога играет и выигрывает
:D . Спасибо всем! (Если кому надо - обращайтесь)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог