4. 怎么選擇合適的算法?
在大多數(shù)情況下生蚁,我們面臨的問題并不是找不到算法噩翠,而是找到的算法太多了:
雖然搜索引擎會(huì)替我們把一部分完全重復(fù)的內(nèi)容過濾掉,但它的能力畢竟有限邦投。這么多算法看得我們眼花繚亂伤锚,到底哪個(gè)算法更適合我們呢?我們肯定不可能把所有的算法都試一遍志衣,因?yàn)槲覀兏緵]有那么多資源和時(shí)間屯援。
接下來猛们,我們就需要執(zhí)行元算法中的第二步:選擇算法。也就是從找到的眾多算法中狞洋,挑選出最適合自己的算法來執(zhí)行弯淘。
我們?cè)谇懊嬷v過,一個(gè)算法在創(chuàng)造出來之后吉懊,在不斷地復(fù)制傳播的過程中庐橙,會(huì)產(chǎn)生很多的變種。除了算法中最核心的步驟外借嗽,其他的一切都可能發(fā)生變化态鳖。比如 做可樂雞翅 的算法中必然有“放雞翅”和“加入可樂”這兩步,否則就不再是可樂雞翅了恶导。然而配菜浆竭、調(diào)料、烹調(diào)時(shí)間惨寿、烹調(diào)方法……可以組成無數(shù)種組合邦泄,也就形成了無數(shù)種大同小異的算法。
只要變種有一定效果缤沦,就會(huì)流傳開來虎韵。效果越好的變種,流傳就越廣缸废。所以別看搜索引擎說它找到了上千萬條內(nèi)容包蓝,看起來很嚇人,其實(shí)那往往只是幾十種甚至幾種算法變種不斷復(fù)制傳播的結(jié)果企量。
事實(shí)上测萎,搜索引擎顯示的結(jié)果前三頁里,基本就包括了所有普遍流行的算法變種届巩。 我們沒有必要一直翻到最后一頁硅瞧,看完所有的算法后再作出決定。如果這件事不是特別重要的話恕汇,我們完全可以只從第一頁里的內(nèi)容中進(jìn)行挑選腕唧。
比如有一個(gè) 制作可樂雞翅 的算法是這樣的:
材料
雞翅10只,可樂1瓶瘾英,姜枣接,蒜,蔥缺谴,鹽但惶,醬油,老抽,料酒
做法
1膀曾、雞翅洗凈县爬,用牙簽在雞翅上扎些小洞
2、姜添谊、蒜财喳、小蔥切碎
3、將雞翅放盤內(nèi)碉钠,再加入切好的姜纲缓、蒜、小蔥
4喊废、加入鹽祝高、醬油、老抽污筷、料酒工闺,用手抓均腌制15分鐘
5、鍋內(nèi)倒入食用油小火燒熱
6瓣蛀、將腌制好的雞翅放入鍋內(nèi)陆蟆,煎到兩面呈金黃色
7、加入適量的可樂燒開惋增,可樂和雞翅持平即可
8叠殷、用小火燜至湯汁變濃時(shí)即可關(guān)火裝盤
拿到一個(gè)算法后,怎么知道它是不是適合自己呢诈皿?我們可以從三個(gè)方面進(jìn)行考察:
1林束、執(zhí)行效果: 算法執(zhí)行的效果如何?我能接受嗎稽亏? 我們需要知道執(zhí)行算法后的效果壶冒,這樣對(duì)自己將要付出的時(shí)間和精力有個(gè)合理的預(yù)期。對(duì)做可樂雞翅這個(gè)例子來說截歉,幾乎每個(gè)菜譜都帶有效果圖胖腾,你只要判斷圖片是否讓你有食欲就可以了,感覺不好的直接pass掉瘪松。除非已經(jīng)沒有其他選擇了咸作,否則不要考慮那些沒有說明執(zhí)行效果的算法。
2宵睦、所需條件: 我具備所有的條件嗎性宏?我能補(bǔ)足不具備的條件嗎?它重要嗎状飞? 掃描整個(gè)算法,羅列一下執(zhí)行它需要的條件,比如:材料诬辈、技能酵使、時(shí)間、金錢……然后逐個(gè)檢查看自己是不是具備焙糟。如果某個(gè)條件不具備口渔,我們能不能、愿不愿意付出額外的時(shí)間和金錢去交換穿撮?在缺失這個(gè)條件的情況下執(zhí)行算法缺脉,會(huì)出大問題嗎?不行的話悦穿,那這個(gè)算法就只能放棄掉了攻礼。比方說你發(fā)現(xiàn)家里沒有姜,僅僅少一味調(diào)料一般來說問題并不大栗柒;但是要是沒有可樂礁扮,你又不能出去買的話,那就別想做可樂雞翅了瞬沦。
3太伊、執(zhí)行難度: 算法是否足夠簡單?每個(gè)步驟描述是否詳細(xì)逛钻?操作起來難嗎僚焦? 梳理一遍所有的步驟,看看你是否能清楚地明白每一步具體要做什么曙痘。算法應(yīng)該用你能理解的方式來描述和呈現(xiàn)芳悲,要是有配圖甚至視頻則更好。如果算法里面有一大堆你看不懂的專業(yè)術(shù)語屡江,那這個(gè)算法就不太適合你芭概。假如你從來沒做過飯,可能對(duì)上面那個(gè)算法里的一些名詞(比如:老抽)有點(diǎn)陌生惩嘉,或者對(duì)某些描述感到疑惑(比如:多大的火算小火罢洲?)。如果你不請(qǐng)教一下做飯高手或者在網(wǎng)上搜索來搞明白這些問題文黎,在執(zhí)行的過程中很可能就會(huì)出問題惹苗。
你是想追求最好的效果?還是在有限的條件下完成任務(wù)耸峭?還是想盡可能地保證成功率桩蓉?哪個(gè)對(duì)你來說最重要?你需要想明白這一點(diǎn)劳闹,然后依此安排考察以上三個(gè)方面的順序院究,把最重要的放在最前面洽瞬。 如果最重要的方面出了問題,我們就不需要再浪費(fèi)時(shí)間去考察其他方面了业汰。
把不適合我們的算法都過濾掉之后伙窃,往往就只剩下屈指可數(shù)的幾個(gè)選擇了。如果你有條件多試幾次的話样漆,不妨把它們都保存下來为障,挨個(gè)試一遍。執(zhí)行過幾個(gè)不同的算法變種放祟,你就能理解這個(gè)算法最核心的部分是什么鳍怨,各個(gè)變種的區(qū)別和價(jià)值在哪里,甚至可以自己開發(fā)出新的變種來跪妥。
如果你只有一次嘗試機(jī)會(huì)鞋喇,那么可以兼顧各個(gè)方面,選擇綜合表現(xiàn)最好的算法骗奖;也可以選擇在你最看重的那個(gè)方面上确徙,單項(xiàng)得分最高的算法(執(zhí)行效果最好的 / 所需條件最少的 / 執(zhí)行難度最小的)。
「試一試」
挑一件你從來沒做過的事执桌,然后通過搜索引擎來尋找算法鄙皇。用上面所述的方法,從搜索結(jié)果前三頁中篩選出適合自己的算法仰挣,并確定一個(gè)最適合自己的算法伴逸,把它保存下來。
5. 怎么做好執(zhí)行算法前的準(zhǔn)備膘壶?
在找到合適的算法之后错蝴,你可能會(huì)覺得勝利已經(jīng)近在眼前了,接下來只要按照算法一步一步地執(zhí)行下去颓芭,就能完成目標(biāo)顷锰。有點(diǎn)躍躍欲試了嗎?
先別著急亡问,請(qǐng)回憶一下官紫,你有沒有遇到過下面這些情況?
從超市回到家之后州藕,才發(fā)現(xiàn)有樣?xùn)|西忘了買
為了趕時(shí)間匆忙行事束世,結(jié)果不小心把事情搞砸了
打游戲時(shí)接了個(gè)電話,掛斷之后游戲已經(jīng)輸?shù)袅?br> ……
俗話說:“預(yù)則立床玻,不預(yù)則廢”毁涉。以上列出的問題,都是由于 沒有進(jìn)行充分準(zhǔn)備 導(dǎo)致的锈死,也就是說沒有做好元算法中的第三步:事前準(zhǔn)備贫堰。我們?cè)趫?zhí)行算法之前準(zhǔn)備得越充分穆壕,出問題的可能性就越小。那我們應(yīng)該怎么做準(zhǔn)備呢严嗜?
1粱檀、制作準(zhǔn)備清單
首先,我們應(yīng)該仔細(xì)閱讀算法中每一個(gè)步驟漫玄,想一想:“如果我要執(zhí)行這一步的話,必須擁有哪些東西压彭?”睦优,然后把所有需要的東西列出一個(gè)清單來。千萬不要天真地以為壮不,照算法作者列出來的材料清單來做準(zhǔn)備就行了汗盘。因?yàn)樽髡咄鶗?huì)假設(shè)一些東西你肯定有,就沒有放在清單里面询一。比如在做可樂雞翅的算法中隐孽,有這么一步:
5、鍋內(nèi)倒入食用油小火燒熱
很明顯健蕊,為了完成這一步菱阵,你必須要有鍋和食用油,而材料清單里并沒有缩功。此外想要用火來加熱晴及,就還得有燃?xì)庠罨蛘唠姶艩t。最后嫡锌,我們可以列出下面的清單來:
材料
雞翅10只虑稼,可樂1瓶,油势木,姜蛛倦,蒜,蔥啦桌,鹽溯壶,醬油,老抽震蒋,料酒
工具
燃?xì)庠?/ 電磁爐茸塞、鍋、鏟子查剖、菜刀钾虐、案板、盤子笋庄、牙簽
如果不經(jīng)過特殊的訓(xùn)練的話效扫,我們的大腦只能同時(shí)記住三到五件事情倔监,當(dāng)有新的事情需要記憶時(shí),之前的事情就會(huì)被忘掉菌仁。所以我們一定要把清單記錄在可靠的媒介上浩习,比如抄到紙上或者存在手機(jī)里,不要相信自己的記憶济丘!
2谱秽、按照清單進(jìn)行準(zhǔn)備,多多益善
接下來摹迷,我們就可以按照清單來做準(zhǔn)備工作了疟赊。把缺少的東西標(biāo)記出來,然后去超市統(tǒng)一采購峡碉。如果有樣?xùn)|西在超市買不到近哟,那就在網(wǎng)上買,也可以問別人借鲫寄。除此之外吉执,對(duì)已經(jīng)有的東西最好也檢查一下,看看數(shù)量夠不夠地来、能不能用戳玫、有沒有損壞……每當(dāng)你 做好了一項(xiàng)準(zhǔn)備,就在清單上做一個(gè)標(biāo)記(比如打勾或者劃掉)靠抑。
算法越復(fù)雜量九、需要準(zhǔn)備的東西越多,出現(xiàn)各種意外的可能性就越大颂碧。假如你在拿可樂時(shí)不小心摔了一跤荠列,一瓶可樂全倒在了地上怎么辦?所以 不管是材料载城、時(shí)間還是金錢肌似,都應(yīng)該盡可能多準(zhǔn)備一些。 就算只需要一瓶可樂诉瓦,也最好買上兩瓶川队,剩下了還可以自己喝。如果你計(jì)劃一個(gè)小時(shí)完成睬澡,那么至少要準(zhǔn)備上兩三個(gè)小時(shí)固额,萬一發(fā)現(xiàn)少了什么東西還可以再去超市買一次……
準(zhǔn)備完成之后,千萬別忘了 再對(duì)照清單核對(duì)一遍煞聪!
3斗躏、調(diào)整環(huán)境和自我狀態(tài)
為了更好地執(zhí)行任務(wù),我們還需要 調(diào)整好自己的身體狀態(tài)昔脯。每個(gè)人都有不同的生理節(jié)奏啄糙,有的人早上精力充沛笛臣,而有的人到了晚上注意力才能集中起來。越是重要的事隧饼,越要安排在自己狀態(tài)最好的時(shí)候來做坏怪。比如剛剛吃完飯人很容易犯困差购,這時(shí)候就不太適合執(zhí)行需要認(rèn)真思考的任務(wù)。而在開始高強(qiáng)度運(yùn)動(dòng)之前皿淋,則必須做適量的熱身來讓身體做好準(zhǔn)備横朋,以避免受傷寂祥。
此外墩新,創(chuàng)造一個(gè)免受外界打擾的環(huán)境 也是很有必要的倍谜。因?yàn)橹挥屑芯Γ拍馨咽伦龊媒摹<偃缒阏谕鎸?duì)戰(zhàn)游戲,那么最討厭的事莫過于來電話了角撞。如果你不得不接這個(gè)電話呛伴,那么很可能會(huì)心不在焉,一直想著游戲里的事谒所。等電話掛掉热康,游戲往往也已經(jīng)輸?shù)袅恕_@種體驗(yàn)真讓人沮喪劣领,對(duì)嗎姐军?
為了避免外部干擾,我們可以在執(zhí)行算法之前尖淘,把手機(jī)關(guān)機(jī)或者調(diào)成靜音奕锌、鎖上房門或者掛上“請(qǐng)勿打擾”的牌子、去咖啡廳或者圖書館……
最后村生,如果你沒有任何相關(guān)領(lǐng)域的經(jīng)驗(yàn)惊暴,那么最好能 找一位專業(yè)人士在旁指導(dǎo)。因?yàn)橹灰侨硕紩?huì)犯錯(cuò)誤趁桃,專業(yè)人士不僅可以在你出現(xiàn)問題時(shí)及時(shí)糾正辽话,也能在你碰到各種意外情況時(shí),提供有效的幫助卫病,避免出現(xiàn)無法挽回的局面油啤。
如果實(shí)在找不到有經(jīng)驗(yàn)的人,也最好能找一個(gè)信得過的伙伴來一起做蟀苛。犯錯(cuò)誤并不可怕益咬,只要及時(shí)發(fā)現(xiàn),采取有效的措施來補(bǔ)救即可屹逛。真正可怕的是犯了錯(cuò)而不自知础废,等到發(fā)現(xiàn)后為時(shí)已晚汛骂。更可怕的是明知道自己犯了錯(cuò)誤,還要一意孤行评腺,往往會(huì)釀成大錯(cuò)帘瞭。
如果我們做好了充分準(zhǔn)備,提前考慮到了各種意外情況蒿讥,那么在執(zhí)行算法時(shí)心里就會(huì)更有底氣蝶念,也就更可能取得好的效果。
「試一試」
選擇一個(gè)自己從來沒有執(zhí)行過的算法芋绸,然后用上面所述的方法來做好執(zhí)行前的準(zhǔn)備工作
(未完待續(xù))