zoukankan      html  css  js  c++  java
  • 算法之--猜测商品价格

    场景:主持人给个商品,价格在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 安装 mysql
    centos7.5上安装go1.13.4
    Linux 安装php
    CENTOS7下安装redis
    CentOS 7安装Etherpad(在线协作编辑)
    nginx《一安装》
    springboot中redis取缓存类型转换异常
    linux安装mysql
    linux上传下载文件(转载https://www.jb51.net/article/143112.htm)
  • 原文地址:https://www.cnblogs.com/25miao/p/8647211.html
Copyright © 2011-2022 走看看