DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> js實現杯子倒水問題自動求解程序
js實現杯子倒水問題自動求解程序
編輯:關於JavaScript     

智力測試題經常遇到類似的邏輯題,給幾個容量不等的杯子,讓你倒出多少的水。

安卓上有一款專門玩這個題的游戲叫做Water Logic.


我安裝這個游戲把幾十個關卡通了一遍,感覺這個游戲的關卡設計很不好,關卡的難度並不是遞增的,有很多後面的關卡相當的弱智,並且缺乏高難度的關卡。

做為程序員的我們,玩這類題目應該都沒問題,10步以內的都可以輕松搞定,10步以上的也可以搞定但未必能夠輕松達到最少步數。

有3顆星強迫症的玩家兼程序員,寫出這麼個自動求解的小程序,以後這個問題再也不是問題了。


點擊這裡試試杯子倒水問題自動求解吧

算法基本邏輯

每個杯子有倒滿、倒空、倒入其它杯子的操作,所以總共是: 杯子數*(杯子數-1+2)

對於3只杯子的情況,每一步可選的操作有12種.  如果2個杯子則每步可選操作有6種。

遍歷每一種操作,記錄操作完成後各個杯子內的水量,以水量計算出一個key來建立map.

遍歷各種倒水操作的過程中,如果key已經存在且當前步數大於先前記錄的步數則捨棄該操作。

這個小程序只能解決2個杯子或3個杯子的倒水問題,並沒有寫成N個杯子通用的,代碼有很多hard code。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved