算法、 if與生活

一聽(tīng)到“算法(Algorithm)”這個(gè)詞,你是否覺(jué)得很艱深晦澀?

的確,以前,這只是數(shù)學(xué)、計(jì)算機(jī)等理工科的專(zhuān)業(yè)詞匯。

事實(shí)上,隨著近兩年大數(shù)據(jù)、無(wú)人機(jī)、人工智能等的出現(xiàn),

你已經(jīng)對(duì)這個(gè)詞不會(huì)感到陌生了。

那么什么是算法?

所謂“算法”,指的就是“對(duì)特定問(wèn)題的解決步驟”。

關(guān)鍵詞是步驟,

計(jì)算機(jī)完成一系列的指令,按照設(shè)定的步驟。

我們生活、工作中的每一件事情也需要按計(jì)劃,按步驟去完成,

否則就會(huì)亂,事情進(jìn)行就不會(huì)那么順利。

學(xué)習(xí)算法,用理工科的思維考慮問(wèn)題,會(huì)有什么好處呢?

1. 邏輯性更強(qiáng),如果說(shuō)計(jì)算機(jī)是邏輯思維的產(chǎn)物,我想大家不會(huì)反對(duì)吧?

2. 做事更有條理性,計(jì)劃性,

3. 思維更發(fā)散,眼界更開(kāi)闊。

我們先來(lái)看看計(jì)算機(jī)的工作方法。

01

人的思考模式,請(qǐng)看

1. 人是會(huì)死的。(大前提)

2. 張三是人。(小前提)

3. 所以張三會(huì)死。(結(jié)論)

這是演繹推理的三段論。

我們看看計(jì)算機(jī)怎么思考:

1. 如果人是會(huì)死的。(大前提)

2. 如果張三是人。(小前提)

3. 那么,張三會(huì)死。(結(jié)論)

把它翻譯成計(jì)算機(jī)語(yǔ)言:

1. if 人是會(huì)死的。(大前提)

2. if 張三是人。(小前提)

3. then 張三會(huì)死。(結(jié)論)

if語(yǔ)句是指編程語(yǔ)言(包括c語(yǔ)言,C#,VB,匯編語(yǔ)言, Python, Matlab等)中用來(lái)判定所給定的條件是否滿(mǎn)足,根據(jù)判定的結(jié)果(真或假)決定執(zhí)行給出的兩種操作之一。

02 ? ?

if 語(yǔ)句三種形式:

1) ?if(表達(dá)式) 語(yǔ)句

如果表達(dá)式的值為真,則執(zhí)行其后的語(yǔ)句,否則不執(zhí)行該語(yǔ)句。其過(guò)程可表示為下圖。

if(表達(dá)式) 語(yǔ)句

舉個(gè)栗子:

if ?(今天不下雨)

爬山;


2) ?if-else語(yǔ)句

if(表達(dá)式)

語(yǔ)句1;

else

語(yǔ)句2;

其語(yǔ)義是:如果表達(dá)式的值為真,則執(zhí)行語(yǔ)句1,否則執(zhí)行語(yǔ)句2 。其執(zhí)行過(guò)程可表示為下圖。


if-(表達(dá)式)else語(yǔ)句

舉個(gè)例子:

if ?(今天不下雨)

爬山;

else

宅在家里;

3) if-else-if語(yǔ)句

前二種形式的if語(yǔ)句一般都用于兩個(gè)分支的情況。

當(dāng)有多個(gè)分支選擇時(shí),可采用if-else-if語(yǔ)句,

其一般形式為:

if(表達(dá)式1)

語(yǔ)句1;

else if(表達(dá)式2)

語(yǔ)句2;

else if(表達(dá)式3)

語(yǔ)句3; …

else if(表達(dá)式m)

語(yǔ)句m;

else 語(yǔ)句n;

其語(yǔ)義是:依次判斷表達(dá)式的值,當(dāng)出現(xiàn)某個(gè)值為真時(shí),則執(zhí)行其對(duì)應(yīng)的語(yǔ)句。然后跳到整個(gè)if語(yǔ)句之外繼續(xù)執(zhí)行程序。 如果所有的表達(dá)式均為假,則執(zhí)行語(yǔ)句n。然后繼續(xù)執(zhí)行后續(xù)程序。 if-else-if語(yǔ)句的執(zhí)行過(guò)程如下圖所示。


if-else-if語(yǔ)句

舉個(gè)栗子:去圖書(shū)館借書(shū)

if ?(《思考,快與慢》有)

借;

else if (《從0到1》有)

借;

else if(《稀缺》有)

借;

else if(《學(xué)會(huì)提問(wèn)》有)

借;

else if(《錯(cuò)覺(jué)》有)

借;

。。。。。。


03

女兒3歲。

做過(guò)父母的人都有經(jīng)驗(yàn),小孩經(jīng)常會(huì)要求買(mǎi)這個(gè)買(mǎi)那個(gè),看到其他小朋友的芭比娃娃,她想要一個(gè),

看到動(dòng)畫(huà)片里的小熊,她想要一個(gè)。

早上一起來(lái),要求看動(dòng)畫(huà)片......

每天很多要求。而且一提出要求,就想立刻得到滿(mǎn)足。

不要告訴小朋友,等一下,一會(huì),我發(fā)現(xiàn)不好使。

幾歲的小孩,完全沒(méi)有時(shí)間概念,在他們看來(lái),一會(huì)、明天、下周,

就意味著永遠(yuǎn)不會(huì)來(lái)到。(當(dāng)然可以用轉(zhuǎn)移注意力的方法)


想起我小時(shí)候,物質(zhì)缺乏,玩具都沒(méi)見(jiàn)過(guò),

一個(gè)月才吃一兩回肉。每到吃肉時(shí),感覺(jué)肉特別香,

每天盼望過(guò)年,過(guò)年有糖吃,有新衣服穿,

過(guò)年前,一拿到村里的裁縫做的土布衣服,

除夕夜,新衣服放在枕頭邊,

摸了又摸,聞了又聞,那種味道,那種感覺(jué)我至今還記憶猶新。

這是延遲滿(mǎn)足帶來(lái)的高級(jí)感受

現(xiàn)在物質(zhì)泛濫,追求及時(shí)滿(mǎn)足的時(shí)代,

再也沒(méi)法體會(huì)那種愉悅的感覺(jué)了。

有人說(shuō),從吃飯來(lái)說(shuō),微波爐和快餐造成了及時(shí)滿(mǎn)足,

微波爐將食物一叮,就可以吃了;

肚子餓了,有“餓了么“,”百度外賣(mài)“,一個(gè)電話就來(lái)了。

小時(shí)候,燒柴火煮飯,那個(gè)慢呀,遇到下雨天,有時(shí)生火都要半個(gè)小時(shí)。

過(guò)年過(guò)節(jié),等飯吃,時(shí)不時(shí)到廚房逗一圈,媽媽往我嘴里塞一塊肉,那個(gè)美味呀!

現(xiàn)在還流口水。


我既然是延遲滿(mǎn)足的收益者,

每當(dāng)女兒有要求,

我常常運(yùn)用延遲滿(mǎn)足+if語(yǔ)句:


-我要看電視。

-如果你把數(shù)字從1到10讀3遍,就可以看了。


-我要像一個(gè)這樣的小貓玩具。

-如果你從今天起積分滿(mǎn)50就可以有一個(gè)了。


-我要吃冰淇淋。

-如果夏天來(lái)了,我們就可以吃冰淇淋了。

。。。。。。

一開(kāi)始,各種哭鬧,各種撒橫,一定要馬上要。

慢慢地,知道不能輕易破我們定下的規(guī)矩,就開(kāi)始來(lái)適應(yīng)這些if規(guī)則了。


04

朋友從事外匯行業(yè)。

有一天聊天,我們談到量化交易,自動(dòng)化交易的趨勢(shì)和可能性。

科技方面,從大數(shù)據(jù),無(wú)人機(jī),再到人工智能,各種算法發(fā)展日新月異,

能用機(jī)器搞定的就不用人,(近年來(lái)人工成本逐年高漲)

科龍美的等大型電器廠,早就開(kāi)始使用機(jī)械手臂,取代一線工人進(jìn)行危險(xiǎn)、繁重的工作;

富士康已經(jīng)裝備600萬(wàn)臺(tái)機(jī)器人,取代一線工人的機(jī)械、簡(jiǎn)單重復(fù)的工作。

近年來(lái)這類(lèi)新聞層出不窮,

據(jù)說(shuō),不久的將來(lái),現(xiàn)在一半以上的工作將被機(jī)器人取代,

搞到人人自危,焦慮自己的飯碗被機(jī)器人搶走。

金融行業(yè),比如,銀行的柜員,明顯少了很多崗位,人們主要的業(yè)務(wù)自動(dòng)取款機(jī)存取款;

尤其現(xiàn)在微信、支付寶支付非常方便,更加大大減少了銀行的這些業(yè)務(wù)量。

說(shuō)到外匯,為何沒(méi)有人把開(kāi)發(fā)無(wú)人機(jī)的智慧用于外匯交易呢?

有人說(shuō),那些高科技的研究發(fā)明者,不屑投身到金融行業(yè),

因?yàn)樵谒麄兛磥?lái),金融行業(yè)給人總是投機(jī)取巧,貪婪的固有印象。

一家之言,無(wú)法考證,一笑了之。

不過(guò),一但有資本巨頭,在這方面投入,自動(dòng)化交易會(huì)徹底改變這個(gè)行業(yè)。

外匯行業(yè),每天成交4萬(wàn)億美元,24小時(shí)開(kāi)市,有其獨(dú)特的魅力:公開(kāi)、透明、公正。

80% 的經(jīng)紀(jì)商用的是Mt4軟件,

是俄羅斯的一家軟件公司開(kāi)發(fā)的。

正式這家公司,改變了我對(duì)俄羅斯科技的看法。

我只知道俄羅斯的重工業(yè),軍工行業(yè)發(fā)達(dá),最著名的恐怕是AK47,

質(zhì)量好、體積大、重量重。

萬(wàn)萬(wàn)沒(méi)想到,這個(gè)軟件這么好,小巧,功能強(qiáng)大。

據(jù)說(shuō),邁達(dá)克公司的Mt4外匯黃金交易軟件,早期占領(lǐng)了俄羅斯后,招聘世界各地的業(yè)務(wù)員,用各地的語(yǔ)言打電話給經(jīng)紀(jì)商,如果你用Mt4軟件,就在你那里開(kāi)戶(hù)。

逐漸殺入全世界的市場(chǎng)。

2004年,邁達(dá)克公司開(kāi)發(fā)出Mql4語(yǔ)言,綁定在交易軟件Mt4里,專(zhuān)門(mén)用于開(kāi)發(fā)EA(Expert Advisor)自動(dòng)化交易程序,

這是一個(gè)小語(yǔ)言,簡(jiǎn)單易學(xué)。

可以開(kāi)發(fā)腳本,EA,指標(biāo)。

腳本就是一段程序,比如下單指令,在指令里設(shè)置好價(jià)格,手?jǐn)?shù)等,一鍵下單,解放人手。

EA就是自動(dòng)化交易的程序,比如,告訴機(jī)器在什么價(jià)位做多,什么條件下做空,什么條件下平倉(cāng)等。

指標(biāo)就是自己開(kāi)發(fā)一個(gè)K線圖表。

我研究了一下,懂得 if語(yǔ)句和函數(shù),就可以自己開(kāi)發(fā)簡(jiǎn)單的EA程序,前提是自己要有交易策略,就是自己知道怎么買(mǎi)賣(mài)賺錢(qián),然后把你的想法告訴機(jī)器。

比如:

(1) ?如果:價(jià)格爬上50期均線之上;

(2) ?如果:賬戶(hù)里還沒(méi)有一張訂單;

(3) ?那么:開(kāi)倉(cāng)做多(1手)!

翻譯一下就是:

1 ?if ?bid>MA_50;

2 ?if ?Total Orders=0;

3 ?then ?Buy 1 lot。

最后寫(xiě)成機(jī)器懂的代碼就是:

if(Bid>MA_50)

{

if (OrdersTotal()==0)

OrderSend(Symbol(), OP_BUY, 1, Ask, 3, 0, 0, " ",0, 0,Blue);

}



總結(jié):我們的生活中充滿(mǎn)了各種算法,將理工科思維運(yùn)用到生活和工作。從if 語(yǔ)句開(kāi)始吧!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,767評(píng)論 18 399
  • 第2章 基本語(yǔ)法 2.1 概述 基本句法和變量 語(yǔ)句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,199評(píng)論 0 13
  • 個(gè)人學(xué)習(xí)批處理的初衷來(lái)源于實(shí)際工作;在某個(gè)迭代版本有個(gè)BS(安卓手游模擬器)大需求,從而在測(cè)試過(guò)程中就重復(fù)涉及到...
    Luckykailiu閱讀 4,779評(píng)論 0 11
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,837評(píng)論 0 11
  • 艾萌舞社將推出線上讀書(shū),第一本:對(duì)生命是說(shuō)發(fā)起人:lily成員:lily、戴戴、豐群、陳紅、萌、童緣起: 本...
    lily北媽閱讀 133評(píng)論 0 0