今天和週三石在討論乙個問題的計算機解法的時候,突然對倒水的這個問題有了比較穩妥的乙個演算法,也不枉費我一番苦心。
問題場景:
現有一10l的桶子x(裝滿水),然後有y桶和z桶,分別是7l和3l的容積(均為空),現在要分出5l,怎麼辦?
我們一般遇到這樣的場景的時候會首先不會去分析它的解法,而是在大腦裡面不斷的迴圈尋找解決方法,但是注意,這樣做的效率是很低的,可能嘗試出來了,但是也可能出現遇到另外乙個照樣不會的問題,所以我們需要了解它,下面我來講講我參悟出的一點拙陋的想法.
我們不妨用另外一中思維方式,倒過來看問題,或者找個參照物,如果按照常規思維我們第一關注的是x,然後才是y和z的關係,我們挖空心思的去尋求x,y,z和5之間的關係,根本沒有對5倒敘來進行相應的分析。
我的思維解法;
1.首先5l 的容積最後是裝到哪個裡面的 在這裡無非就是y || x
2.假設在最後由x裡面裝5l,那麼我把z中的水倒入y,則y中必5l
3.假設在最後由y裡面裝5l,那麼我把z中的水倒入x,則y中必5l
4.由1/2/3得出結論,我們得知最後y中必有5l
5.則可知 我們需要尋求的偏移量無非是 2 / -2 , 那麼我們在某乙個桶中需倒出2l或者需要倒入2l,則我們可知道通過絕對容積值來判斷 z為最佳選擇 7與3都為奇數,那麼他們出現偏移量1的概率在z中或者在y中一樣大,但是2條件中需要保持最後y又5l的容積,則得知y中的偏移量為 -2 ,則判斷z為2
6.既然知道了z的偏移量,我們再來看就簡單多了,既然y和z都為奇數,那麼組裝倍數的差距 y/z==2,並且y % z==1 則判斷y向z中匯入2次,並或者z向y中匯入3次,則餘下的1放入z中,得到偏移量 2 或者 -2,則將 y滿 匯入z則 y+(-1)(2) = 5為所求
我們再次縱觀整個推理過程,主要的設計在偏移量的控制和最後的流程設計上面,不難得出結論,在任何符合上述思維的演算法中,用倒序法 + 離散數學 + 偏移量 則可以清楚地在未說明怎麼倒之前其實整個過程已經在大腦裡面回顧了一遍,這種方式也 同時倒序也說明了在 程式語言中的遞迴為什麼先要找結束條件的問題,這裡的求偏移量的過程就相當於將 遞迴中的遞迴關係掛鉤,不難得出對於任意值的倒水問題的最終解法 ,偏移量與最小值的差值不滿足mod的差距的時候,就斷定倒不出指定的容積,這就是分析的整個過程。
由搜狐案例所想到的
4月29 日下午,我應邀參加 網際網路實驗室 舉辦的 智財權過度保護與中國網際網路發展研討會 很有感觸。會議討論了網際網路 搜尋引擎 運營商的法律責任問題。在網際網路時代,搜尋引擎 一定會助長 網路盜版 現象。網路盜版的氾濫,搜尋引擎 運營商總歸逃脫不了受到 牽連 命運。近年來,對於智力作品的作者賦...
由深圳的大樹所想到的
吾以前的公司在福田區,那裡的大榕樹特別多。跟別人談起的時候,有人說那是老城區,新城區綠化就不行了。吾一想,還真是,新城區的樹確實小。福田區的這個大樹,當然不可能是移植的,是以前就有的。新城區的樹 去了?什麼時間,什麼人?有沒有人考證一下?吾老家寺口,印象中也有大樹。以前的寺口聯中和舊公路橋之間,有兩...
跟風 由技術跟風所想到的
人們的生活總被風潮包圍,它可以使人進步也可以使人落後,所以跟風還是適度為宜。坐在電腦前,忽然想起了那個6年前的自己,這才恍然大悟到原來自己也是一名跟風者,然而令我欣慰的是自己恰卻缺少了現在跟風者的盲目。盲目的跟風成就了現在 it 群體的如此龐大,以至於平均水平令人可嘆。回想過去 20年前的中國,從事...