Я пытаюсь написать программу, в которой компьютер пытается угадать номер, который пользователь выбирает (1 - 100). У меня большая часть выписанной программы, а также генератор случайных чисел. Единственное, что мне нужно сейчас - это способ реализовать алгоритм бинарного поиска в моей программе на основе пользовательских входов HIGH или LOW. Я читал некоторые о бинарном алгоритме поиска, но я не уверен, как его использовать в моей программе. Может ли кто-нибудь указать мне в правильном направлении?Реализация бинарного поиска гадания
Линии 34 и 42 имеют пробел, где должна быть функция. Вот где я хотел бы ввести какое-то уравнение, которое реализует алгоритм бинарного поиска в моей программе.
Ниже мой код, как сейчас:
#include <iostream>
#include <ctime>//A user stated that using this piece of code would make a true randomization process.
#include <cstdlib>
#include <windows.h>
using namespace std;
int main()
{
int highLow;
int yesNo;
int ranNum;
srand(time(0));
ranNum = rand() % 100 + 1;
cout << "Please think of a number between 1-100. I'm going to try to guess it.\n";
_sleep(3000);
cout << "I'm going to make a guess. Is it "<< ranNum <<" (1 for yes and 2 for no)?\n";
cin >> yesNo;
while (yesNo == 2)
{
cout << "Please tell me if my guess was higher or lower than your number\n";
cout << "by inputting 3 for HIGHER and 4 for LOWER.\n";
cin >> highLow;
if (highLow == 3)
{
cout << "Okay, so my guess was higher than your number. Let me try again.\n";
_sleep (1500);
cout << "Was your number " << <<"? If yes, input 1. If not, input 2.\n";// I would like to find a way to implement the
//binary search algorithm in this line of code.
cin >> yesNo;
}
if (highLow == 4)
{
cout << "Okay, so my guess was lower than your number. Let me try again.\n";
_sleep (1500);
cout << "Was your number " << <<"? If yes, input 1. If not, input 2.\n";// I would like to find a way to implement the
//binary search algorithm in this line of code.
cin >> yesNo;
}
}
if (yesNo == 1)
{
cout << "My guess was correct!\n";
}
}
У вас есть функция двоичного поиска? Если нет, первое, что вам нужно сделать, это создать его и протестировать на жестко закодированном входе. После правильной проверки вы примените его к более крупной программе. – PaulMcKenzie
Добро пожаловать в StackOverflow. Хотя ваш вопрос, без сомнения, интересен, SO не является сервисом написания кода. Вы могли бы, например, узнать о существующем, но ошибочном алгоритме бинарного поиска, о некотором сломанном API, но не о вопросах, которые подвержены полемике или длительным обсуждениям. SO тоже не блог. – SwiftArchitect