• 算法之--猜测商品价格


    场景:主持人给个商品,价格在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
    恭喜您猜对了
  • 相关阅读:
    LINUX安装NGINX
    CentOS 设置mysql的远程访问
    centos6 mysql 安装与配置
    php读取用友u8采购入库单列表及详细
    php读取用友u8客户档案
    深度linux没有ll等命令的解决办法
    CentOS7下FTP的安装与配置
    虚拟机CentOS6.5搭建samba服务器实现文件共享
    linux 查找php.ini在那个文件夹
    CBE引擎概览
  • 原文地址:https://www.cnblogs.com/25miao/p/8647211.html
Copyright © 2020-2023  润新知