|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.10.2009, 18:38 | #1 |
Регистрация: 30.10.2009
Сообщений: 8
|
Написать программу, которая за меньшее число ходов отгадывает загаданное число
Написать программу, которая за меньшее число ходов отгадывает загаданное число от 0 до 1000.
Ввод с клавиатуры числа и указания пользователя 1 - больше показаного, 0 - число угадано, -1 - меньше показанного Помогите пожалуйстя |
30.10.2009, 18:40 | #2 |
Я есть!
Форумчанин
Регистрация: 17.02.2008
Сообщений: 318
|
Язык? Что именно не ясно?
©Учиться, учиться и еще раз учиться!
|
30.10.2009, 18:52 | #3 |
Форумчанин
Регистрация: 10.10.2009
Сообщений: 680
|
Используем дихотомию (binary search) и гарантировано угадываем за 10 ходов Возьмите интервал 1-1024, там удобней всего работать, степени двойки все время.
|
30.10.2009, 19:00 | #4 |
Регистрация: 30.10.2009
Сообщений: 8
|
Сори... На паскале текст программы надо)))
|
30.10.2009, 19:04 | #5 |
Заблокирован
Старожил
Регистрация: 20.07.2008
Сообщений: 4,032
|
Сделаю, недорого. Аська в профиле.
|
30.10.2009, 19:06 | #6 |
Форумчанин
Регистрация: 10.10.2009
Сообщений: 680
|
Наработки?
|
30.10.2009, 19:07 | #7 |
Регистрация: 30.10.2009
Сообщений: 8
|
то LeBron
У меня моя преподавательница не поймет))) По шее даст разочков пять))) поэтому мне как-то по обычному надо, но блин не выходит... Я не знаю какой шаг делать и откуда начинать... Плюс тут наименьшее число ходов меня настораживает((( |
30.10.2009, 19:17 | #8 |
Пользователь
Регистрация: 09.09.2009
Сообщений: 39
|
Наименьшее число ходов абсолютно неприувеличено Приблизительное описание процедуры поиска для этой задачи:
1. Делим массив на две части. 2. Берем средний элемент. 3. Если он больше, то загаданное число слева, выполняем шаги 1 - 3 с левой половиной; если меньше - с правой. Если равны - цель достигнута. |
30.10.2009, 19:20 | #9 |
Регистрация: 30.10.2009
Сообщений: 8
|
ох... Мы массивы только проходить начали((( А вообще идея мне нравится))) Я завтра наберу)))
|
30.10.2009, 19:27 | #10 |
Форумчанин
Регистрация: 10.10.2009
Сообщений: 680
|
По обычному и массив не надо использовать. Объясняю идею на примере поиска в 1-1024.
Берем середину - 512 (1024/2=512), размер отклонения 512/2=256. Если больше 512, то спрашиваем уже для 512+256=768. Уменьшаем отклонение в 2 раза 256/2=128. Если, к примеру, меньше 768 - отнимаем отклонение и получаем 640. Отклонение 64. Если больше 640... И так пока не попадем в само число. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите написать программу игры угадай число!!! | Oleg Olegovi4 | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 21.05.2009 21:54 |
Программа, которая отгадывает заданное число | vakich | Помощь студентам | 7 | 24.02.2009 19:13 |
Ввести число N и определить делится ли оно без остатка на число M (VBA) | Ivanich | Microsoft Office Excel | 7 | 24.04.2008 19:43 |
Паскаль.программа, которая определяет каким является введенное число... | Integer | Помощь студентам | 4 | 18.11.2007 22:17 |
нужна функция WinApi, которая переводит десятичное число в шестнадцатиричное??? | Morskoivolk | Win Api | 3 | 02.04.2007 18:14 |