算法之--猜测商品价格

场景:主持人给个商品,价格在99999中,你说一个价格,支持人会比对实际价格,来告诉你是高了,还是低了,如何用最少的次数猜测到商品价格。

思路:二分查找法

上代码:

# -*- coding:utf-8 -*-
# 猜商品价格游戏--使用二分法最快 前提:价格在999元以内
#商品实际价格
oldPrice=0
#用户猜测的价格
caiPrice=0
#区间最低价格  -- 用于计算最佳猜测价格
zuidi=0
#区间最高价格
zuigao=99999
oldPrice=int(input("请输入商品实际价格:"))
caiPrice=int(input("请输入您猜的价格:"))

while oldPrice!=caiPrice:
      if caiPrice>oldPrice:    
          print("高了")
          print("根据您的猜测价格,最佳价格策略为:")
          zuigao=caiPrice
          print((zuidi+zuigao)/2)
          caiPrice=int(input("请输入您猜的价格:"))
      elif caiPrice<oldPrice : 
          print("低了")
          print("根据您的猜测价格,最佳价格策略为:")
          zuidi=caiPrice
          print((zuidi+zuigao)/2)
          caiPrice=int(input("请输入您猜的价格:"))
if oldPrice==caiPrice:
    print("恭喜您猜对了")

 

实际运算结果:商品实际价格越高,需要的次数要多

请输入商品实际价格:800
请输入您猜的价格:500
低了
根据您的猜测价格,最佳价格策略为:
749.5
请输入您猜的价格:750
低了
根据您的猜测价格,最佳价格策略为:
874.5
请输入您猜的价格:874
高了
根据您的猜测价格,最佳价格策略为:
812.0
请输入您猜的价格:812
高了
根据您的猜测价格,最佳价格策略为:
781.0
请输入您猜的价格:781
低了
根据您的猜测价格,最佳价格策略为:
796.5
请输入您猜的价格:796
低了
根据您的猜测价格,最佳价格策略为:
804.0
请输入您猜的价格:804
高了
根据您的猜测价格,最佳价格策略为:
800.0
请输入您猜的价格:800
恭喜您猜对了

 

posted @ 2018-03-25 21:53  幸福安康  阅读(531)  评论(0编辑  收藏  举报