#include <iostream>
#include <random> // 난수 생성
using namespace std;
int main()
{
// 난수 생성
// https://en.cppreference.com/w/cpp/numeric/random/uniform_int_distribution
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> distrib(1, 99); // [1, 99]
int number = distrib(gen);
while (1) // true 대신 숫자 1로 무한 반복도 많이 사용합니다.
{
int guess;
cout << "입력: ";
cin >> guess;
if (guess > number)
{
cout << "너무 커요!" << endl;
}
else if (guess < number)
{
cout << "너무 작아요!" << endl;
}
else
{
cout << "정답이에요!" << endl;
break;
}
}
return 0;
}
std::random_device rd; //객체를 생성하여 난수 생성기의 시드 값을 얻습니다.
std::mt19937 gen(rd()); //std::mt19937 객체를 생성하고, std::random_device로부터 얻은 시드 값으로 초기화합니다.
std::uniform_int_distribution<> distrib(1, 99); // 객체를 생성하여, 1에서 99 사이의 정수를 균등하게 생성할 수 있도록 설정합니다.[1,99]
보충: 하나씩 다 비교하는 방법과 이진 탐색 비교
[1,99] // 99가지 -> 98/2 = 49 : 너무 작아요~
[51, 99] // 49가지 -> 48/2 = 24 :
[51, 74] // 24가지
[63, 74]
[69, 74]
[72, 74]
총 6번의 입력으로 구함!
/*
홍정모 연구소 https://honglab.co.kr/
*/
#include <iostream>
#include <random> // 난수 생성
using namespace std;
int main()
{
// 난수 생성
// https://en.cppreference.com/w/cpp/numeric/random/uniform_int_distribution
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> distrib(1, 99); // [1, 99]
int number = distrib(gen);
while (1) // true 대신 숫자 1로 무한 반복도 많이 사용합니다.
{
int guess;
cout << "입력: ";
cin >> guess;
if (guess > number)
{
cout << "너무 커요!" << endl;
}
else if (guess < number)
{
cout << "너무 작아요!" << endl;
}
else
{
cout << "정답이에요!" << endl;
break;
}
}
// 보충: 하나씩 다 비교하는 방법과 이진 탐색 비교
// [1,99] // 99가지 -> 98/2 = 49 : 너무 작아요~
// [51, 99] // 49가지 -> 48/2 = 24 :
// [51, 74] // 24가지
// [63, 74]
// [69, 74]
// [72, 74]
// 총 6번의 입력으로 구함!
return 0;
}
출처 : 홍정모 유튜브