免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
一個(gè)簡(jiǎn)單的二分法實(shí)現(xiàn)

哈嘍,已經(jīng)開(kāi)始閑的蛋疼的筆者開(kāi)始研究同樣蛋疼的算法,學(xué)算法當(dāng)然從二分法開(kāi)始咯

簡(jiǎn)單的說(shuō),二分法就是對(duì)半切割查找(反正我是這么理解的)

                                               

先舉個(gè)例子,在展示代碼

比如在1~100之間,要猜的數(shù)字是20,利用二分法就會(huì)有這樣的情況發(fā)生...

S1:在1~100中取中間 50,比較 50 和 20,發(fā)現(xiàn) 20 比 50小,那么20肯定比51小,這樣就排除了 50、51、52....100

S2:在1~49中取中間 25,比較 25 和 20,發(fā)現(xiàn) 20 比 25小,那么20肯定比26小,這樣就排除了25、26、27...49

S3:在1~24中取中間 12 ,比較 12 和 20 ,發(fā)現(xiàn) 20 比 12 大,那么20肯定比11大,這樣就排除了12、11、10...1

S4 :(筆者你是在記流水賬啊,這里跳過(guò))

...

                                             

最后,得出了要猜的次數(shù)

好了,上代碼,注釋都在代碼中,并且用了隨機(jī)數(shù)。寫(xiě)的不是特666,就用最簡(jiǎn)單的方式介紹下二分法,寫(xiě)的不好望大佬指正

import random
answer_number = random.randint(1, 100)  # 要猜的數(shù)字
print("要猜的數(shù)字 ", answer_number)
guess_list = [i for i in range(1, 101)]  # 范圍1-100
min_number = min(guess_list)  # 最小數(shù)
max_number = max(guess_list)  # 最大數(shù)
mid_number = (max_number   min_number) // 2
guess_num = 1  # 猜的次數(shù)
while answer_number != mid_number:
    min_number = min(guess_list)  # 最小數(shù)
    max_number = max(guess_list)  # 最大數(shù)
    mid_number = (max_number   min_number) // 2
    print("開(kāi)始的中間數(shù)", mid_number)
    guess_num  = 1
    # 如果猜的數(shù)字小于中間數(shù)
    if answer_number < mid_number:
        # 最大的數(shù)就變成中間數(shù)-1
        # 范圍變成最小的數(shù) - 中間數(shù)-1
        # 中間數(shù)變成最大的數(shù)
        mid_number = mid_number - 1
        print("最大的數(shù) ", mid_number)
        guess_list = [i for i in range(min_number, mid_number   1)]
        print("范圍 ", guess_list)
        print('\n')
    elif answer_number > mid_number:
        # 最小的數(shù)就變成中間數(shù)
        # 范圍變成中間數(shù) - 最大的數(shù)
        # 中間數(shù)變成最小的數(shù)
        print("最小的數(shù) ", mid_number)
        guess_list = [i for i in range(mid_number, max_number   1)]
        print("范圍 ", guess_list)
        print('\n')
print("猜的數(shù)字是", answer_number)
print("猜了", guess_num, "次")

```

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
山峰數(shù)組的頂部
Python基礎(chǔ)知識(shí)儲(chǔ)備,小白都能看懂的Python函數(shù),實(shí)戰(zhàn)操作演示
Python算法之二分法01
if語(yǔ)句--python
Python中Random模塊的用法
二分法(折半查找)的運(yùn)用之java實(shí)現(xiàn)猜數(shù)字游戲
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服