算法之--猜測商品價格
阿新 • • 發佈:2018-03-26
商品 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("請輸入您猜的價格:")) whileoldPrice!=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 恭喜您猜對了
算法之--猜測商品價格