What is the best strategy for guessing the number game?

  • Thread starter Thread starter fisico30
  • Start date Start date
  • Tags Tags
    Game
Join the discussion
Registration is free. Start your own thread to ask a follow-up.
5 replies · 3K views
fisico30
Messages
362
Reaction score
0
Hello Forum,
I just learned about the "guess the number" game. There are 100 numbers, from 1 to 100 and the computer must ask questions to find the correct number.

The computer could start from 1 and go up until it finds the right number. That would involve a certain number of questions.
Or the computer could ask more intelligent questions, like "is the number smaller or larger than 50", etc...


Most of the codes I have seen don't ask that "is the number smaller or larger than 50?" but simply ask some binary questions that are all similar (is this number smaller or larger than the previously guessed number? etc...)

Why?

thanks
fisico30
 
Physics news on Phys.org
Hi fisico30. This game usually uses a simple binary search, in which it always halves the interval in which it currently knows where the solution lies. So the "computer" would typically start with a guess of 50 and then simply require to be told if it was either correct or high or low.

If correct the game stops with a score of "one guess". If it was told 50 was high then it would next guess 25, if told 50 was low then it would next guess 75 and so on. Searching by continually halving the interval is easy to implement and fairly efficient.

BTW. This game is sometimes given as a exercise for students learning an introductory programming course. It's about the simplest example the you can think of that in some sense constitutes an "AI" game.
 
Thanks uart,

great help. Ideally, the least number of guesses, questions, to get to the right answer, the better...

What would be a slightly more sophisticated version of this game? Instead of asking questions based on halving the interval in which it currently knows where the solution lies, would could be asked?

thanks
fisico30
 
Increase the range, say to 0-1,000, and ask if *any* (not which) digit is correct.
 
Thanks, I see.

So, if we get the number 3456, we would ask if any of the digits forming this number are correct...
that still seems far from being able to correctly guess the right number though...

thanks
fisico30