1. 程式人生 > >算法之--猜測商品價格

算法之--猜測商品價格

商品 odi pre 價格 次數 結果 utf-8 inpu body

場景:主持人給個商品,價格在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
恭喜您猜對了

算法之--猜測商品價格