有任务:
玩家选择一个1到100之间的随机数,计算机必须猜测。在你开始之前,想想你是怎么猜的。如果一切顺利,试着编写游戏代码。
我的代码是:

import random
num = int(input('Your number: '))
numC = random.randint(1, 100)
tries = 1
while numC != num:
    numC = random.randint(1, 100)
    if numC > num:
        print(numC, 'Less')
        numC = random.randint(1, numC)
    else:
        print(numC, 'More')
        numC = random.randint(numC, 100)
    tries += 1
print(numC, 'Computer guessed your number with', tries, 'tries')

它起作用了,但我不认为它像作者想要的那样起作用。
如何使这个程序猜测数字使用最少的尝试?我知道这是关于减少随机生成器的帧数,但我不知道如何在不使用无限多变量的情况下做到这一点。

最佳答案

我会改变这种方式,动态地记住范围并猜测正确的范围

import random
num = int(input('Your number: '))
numC = random.randint(1, 100)
tries = 1
lowerLimit=1
upperLimit=100
while numC != num:
  if numC > num:
    print(numC, 'Less')
    upperLimit = numC+1
  else:
    print(numC, 'More')
    lowerLimit = numC-1
  tries += 1
  numC = random.randint(lowerLimit, upperLimit)
print(numC, 'Computer guessed your number with', tries, 'tries')

10-08 14:46