Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.07.2013, 18:00   #1
uraura
Пользователь
 
Регистрация: 29.10.2008
Сообщений: 87
По умолчанию подбор n-значного числа

нужно помочь с алгоритмом:
есть неизвестное n-значное число (n-известно)
при подставлении каких либо чисел имеем ответ - угадал столько-то чисел и столько-то стоят на своих местах.
так вот, нужно угадать число, собственно!
нужен толчок, начало, не могу определиться с чего начать??

Последний раз редактировалось uraura; 03.07.2013 в 18:02.
uraura вне форума Ответить с цитированием
Старый 03.07.2013, 18:56   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Самый простой способ (может быть, есть "красивее" и производительнее):
берем n-значное число из нулей - получаем количество чисел на своих местах
изменяем первый ноль на единицу - получаем количество чисел на своих местах
если количество уменьшилось (предыдущее значение было верным), то возвращаем ноль и переходим к следующему знаку
если количество не изменилось (ни предыдущее, ни текущее значение не являются верными), то ставим двойку и повторяем
если количество увеличилось (текущее значение верно), то переходим к следующему знаку

Таким образом, на 100-значном числе будет в худшем случае перебор 1000 цифр.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 03.07.2013 в 19:00.
BDA вне форума Ответить с цитированием
Старый 03.07.2013, 21:03   #3
uraura
Пользователь
 
Регистрация: 29.10.2008
Сообщений: 87
По умолчанию

есть еще одно но надо уложиться за 5-10 попыток
uraura вне форума Ответить с цитированием
Старый 03.07.2013, 21:14   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Тогда что подразумевается под "угадал столько-то чисел"?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 03.07.2013, 21:23   #5
uraura
Пользователь
 
Регистрация: 29.10.2008
Сообщений: 87
По умолчанию

допустим число н 4-х значное вводим 1234 ответ 2 числа угадал из них 1 на своем месте, введем 5678 ответ 3 числа угадал 2 на своем месте
uraura вне форума Ответить с цитированием
Старый 03.07.2013, 21:27   #6
uraura
Пользователь
 
Регистрация: 29.10.2008
Сообщений: 87
По умолчанию

я прикидываю что примерно алгоритм для 4 цифр выглядит так проверяем 1234 узнаем ответ проверяем 5678 узнаем ответ дальше 9012 - и как то надо сопоставить ответы
uraura вне форума Ответить с цитированием
Старый 03.07.2013, 21:59   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Гуглите игра "Быки и коровы"
(если не ошибаюсь, "быками" называются угаданные цифры, стоящии на своих местах, "коровами" — угаданные, но не на своих местах.

p.s. не уверен, что число может быть ГАРАНТИРОВАННО угадано за 5-10 попыток при достаточно большом n (ну, скажем, при n=12)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.07.2013, 21:59   #8
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,372
По умолчанию

Быки и коровы?
waleri вне форума Ответить с цитированием
Старый 03.07.2013, 22:03   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Быки и коровы?
точно. но я чуток опередил!

а поиск вполне можно начать прямо с форума.
например,
быки и коровы
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.07.2013, 22:27   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Serge_Bliznykov, waleri, спасибо за интересную игру (уж было начал думать над алгоритмом, а Вы так "обломали" ).
Еще: http://habrahabr.ru/post/148846/
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
генератор для 5 - значного кода. DanteSSS Помощь студентам 2 21.08.2012 18:31
четные цифры n-значного числа pokat Помощь студентам 4 09.10.2011 21:41
Перестановка 2х значного числа artemavd Помощь студентам 1 24.01.2010 20:41
При вставке 20-значного числа в ячейку происходит округление. Как избавиться? urri_k Microsoft Office Excel 9 25.07.2008 23:10