算法之--猜测商品价格

Posted 幸福安康

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法之--猜测商品价格相关的知识,希望对你有一定的参考价值。

场景:主持人给个商品,价格在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
恭喜您猜对了

 

以上是关于算法之--猜测商品价格的主要内容,如果未能解决你的问题,请参考以下文章

脚本——猜测商品价格

算法复习求解递归式的方法

数据结构与算法之深入解析“股票价格跨度”的求解思路与算法示例

数据结构与算法之深入解析“股票价格波动”的求解思路与算法示例

Python 算法之二分查找

动态规划之记忆的作用