Newb ??
Steven D'Aprano
steve at REMOVETHIScyber.com.au
Thu Nov 10 09:39:40 EST 2005
On Thu, 10 Nov 2005 13:30:05 +0000, Norman Silverstone wrote:
>> In that case, think of "bisection". Originally, all the computer knows
>> is that the number is in some range, say 0 to 100. It can then guess
>> the midpoint, 50. If it's right, yay! Otherwise: if it's told to go
>> lower, then the range is now 0 to 49 -- if higher, it's 51 to 100; in
>> each case the range was just halved (actually, a bit more than halved).
>
> Thank you, I thought that might be the case. So, I will have to settle
> down and try to write some pseudo-code first. I hope to be back.
Heh, you will find that Python is practically executable pseudo-code!
Untested:
def guess_number():
# please don't cheat the poor computer...
print "Guess a number."
lo = 0
hi = 100
while True:
guess = (lo+hi)//2
ans = raw_input("Is it %d? y/n " % guess)
if ans in ('y', 'yes'):
break
ans = raw_input("Too high? y/n ")
if ans in ("y", "yes"):
hi = guess-1
else:
lo = guess+1
This should run, and it will *almost* do what you want.
--
Steven.
More information about the Python-list
mailing list