杯子倒水問題自動求解程式(Javascript實現)

來源:互聯網
上載者:User

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

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

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

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

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

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

演算法基本邏輯:

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

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

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

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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.