日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

三體問題和軟件開發(fā)之間的關(guān)系簡析

bzdlyqxsl ? 來源:中科院物理所 ? 作者:Krste?i?gori? ? 2022-10-24 10:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

代碼結(jié)構(gòu)之間的關(guān)聯(lián)是隨時(shí)間推移逐漸形成的,因?yàn)槲覀儗⒉煌牟糠忠暈檎w的一部分,在實(shí)際操作中,我們應(yīng)盡量避免這樣做。

最近幾個(gè)月有很多工作需要做,我過得比較艱難,需要休息一下。我的放松方式是閱讀,我選擇了劉慈欣的《三體》。開始閱讀之前,我從未了解過這本書,也不了解三體問題,但是讀完之后我震驚了。《三體》是一本科幻小說,是地球往事三部曲中的第一部。這本書構(gòu)造了一個(gè)三體問題——經(jīng)典力學(xué)中最復(fù)雜的問題之一,并圍繞它講述了一個(gè)故事。所以讓我,在不破壞最初故事的前提下,用我自己的方式做同樣的事情。

三體問題

為了解釋三體問題以及它和軟件開發(fā)的聯(lián)系,讓我從單體問題開始解釋。單體問題更常被稱為有心力問題(the central-force problem)。有心力問題試圖決定一個(gè)受到中心力作用的粒子的運(yùn)動(dòng)狀態(tài),這個(gè)有心力的力源位置固定。更直白地講,恒星可以視為靜止的。行星的運(yùn)動(dòng)可以用三角函數(shù)表示

考慮稍微復(fù)雜一點(diǎn)的情況,讓我們想象兩個(gè)有質(zhì)量的物體通過引力互相影響彼此的運(yùn)動(dòng)狀態(tài),也就是二體問題。這可以被用來描述地球和月球圍繞對(duì)方做的運(yùn)動(dòng)?;蛘吲e一個(gè)更好的例子,冥王星和冥衛(wèi)一,就像下面動(dòng)圖描述的一樣。

ff48dca6-528e-11ed-a3b6-dac502259ad0.gif

冥王星—冥衛(wèi)一系統(tǒng)的側(cè)視圖,顯示出冥王星繞著它外面的一點(diǎn)公轉(zhuǎn)。(維基百科)

對(duì)于包括引力在內(nèi)的許多種力來說,廣義的二體問題可以被轉(zhuǎn)化成兩個(gè)單體問題,因此二體問題可以完全求解。因此,二體問題也存在著對(duì)應(yīng)的解決方案。

但如果我們再加入一個(gè)有質(zhì)量的物體,將整個(gè)系統(tǒng)轉(zhuǎn)變?yōu)槿w問題,那么事情就變得不可預(yù)測起來,常常陷入混亂。對(duì)于絕大多數(shù)初始條件,三體問題不像單體或二體問題那樣有一般的封閉解。

軟件開發(fā)中n體問題的建立

三體問題與軟件開發(fā)有什么關(guān)系呢?事實(shí)上并無關(guān)系。但如果思考這兩件事,我們可以發(fā)現(xiàn)它們有相似之處。彼此影響的強(qiáng)耦合的功能與極弱耦合功能可以在同一個(gè)系統(tǒng)中和平共存,而不會(huì)迫使其中之一發(fā)生改變。讓我們將軟件開發(fā)與n體問題做一個(gè)比較。

最開始事情很簡單而且易于理解。我們有一個(gè)主角,也就是一個(gè)中心,其他所有事情都圍繞它展開。軟件功能不多,不會(huì)彼此沖突。

比如,我們打算開發(fā)一個(gè)庫存管理應(yīng)用。我們需要做的只是插入新條目、增刪數(shù)量以及了解庫存狀態(tài)。所以我們完成了這些功能。

過了一段時(shí)間我們需要添加新東西。最好能開一家網(wǎng)店來線上售賣產(chǎn)品。因此我們開始為庫存管理軟件添加新功能。

首先,要添加一個(gè)網(wǎng)頁。我們獲取包含可用數(shù)量的庫存狀態(tài)?,F(xiàn)在這個(gè)網(wǎng)頁需要描述可用庫存的狀態(tài),但這并不意味著這些原本可用的商品不在庫存中了,它們只是換了一種狀態(tài)。所以我們需要在庫存中設(shè)置一種新狀態(tài)。我們需要掌握“現(xiàn)貨”狀態(tài)的商品數(shù)量,以及“可售”狀態(tài)的商品數(shù)量。

但是現(xiàn)在需要更改為網(wǎng)店獲取可用數(shù)量的操作,以反映這一變化。如果我們不能賣掉它們,那么倉庫里到底有多少商品其實(shí)并不重要。我們只想在網(wǎng)店展示“現(xiàn)貨”數(shù)量。我們需要再次修改網(wǎng)店。

系統(tǒng)中一部分物體的重力吸引其他部分改變運(yùn)動(dòng)狀態(tài)。這兩部分之間存在競爭,直到二者達(dá)到穩(wěn)定狀態(tài)。一旦我們優(yōu)化了功能,事情就會(huì)回到最初可預(yù)測的狀態(tài)。所有事情都按計(jì)劃運(yùn)行,這讓我們很高興。我們?nèi)匀豢上鄬?duì)容易地預(yù)測接下來會(huì)發(fā)生什么,并知道一個(gè)部分的改變會(huì)如何影響其他部分。

ff92ef58-528e-11ed-a3b6-dac502259ad0.gif

兩個(gè)質(zhì)量有“微小”差別的物體繞共同的質(zhì)心運(yùn)動(dòng)(維基百科)

但事情可以被優(yōu)化。我們可以為顧客提供快遞服務(wù)。因此我們檢查了現(xiàn)有的系統(tǒng),并在每一步都做出改變。快遞服務(wù)改變了庫存,庫存改變了網(wǎng)站設(shè)計(jì),網(wǎng)站又反過來改變了快遞服務(wù),快遞服務(wù)改變了庫存……

快遞服務(wù)擴(kuò)展了商業(yè)貿(mào)易。一個(gè)倉庫不再能滿足需求,我們希望在更多地方發(fā)展生意,并且系統(tǒng)需要能支持這種工作方式。但這將如何影響現(xiàn)有的系統(tǒng)?庫存需要調(diào)整以適應(yīng)多個(gè)地點(diǎn)。而由于網(wǎng)站會(huì)減少庫存的商品數(shù)量,它也需要被改造以支持多個(gè)地點(diǎn)。但怎么做到這些呢?這又要求庫存和快遞服務(wù)也做出改變……好混亂啊。

ffba6448-528e-11ed-a3b6-dac502259ad0.gif

位于不等邊三角形頂點(diǎn)的三個(gè)初始速度為零的相同物體的近似軌跡(維基百科)

回到單體問題

我們該如何避免這個(gè)問題?我們有怎樣才能避免某一個(gè)功能對(duì)其他功能產(chǎn)生嚴(yán)重影響?

太陽系有許多質(zhì)量足夠大的行星,它們可以影響彼此的運(yùn)動(dòng)狀態(tài)。然而,如果我們試圖預(yù)測地球圍繞太陽公轉(zhuǎn)的軌道,我們完全可以忽略所有行星而只關(guān)注太陽和地球。這會(huì)給我們足夠好的關(guān)于實(shí)際運(yùn)動(dòng)的初始近似。對(duì)于木星和其他任何行星軌道的預(yù)測也是一樣。

如果我們將軟件系統(tǒng)的兩個(gè)功能解耦,我們就可以像太陽系中的行星一樣處理它們。一個(gè)行星的重力不足以影響另一個(gè)行星的軌道。雖然它們確實(shí)仍然互相影響,但這些影響帶來的改變不會(huì)十分明顯,一些情況下甚至不存在。

設(shè)想如果我們試圖計(jì)算未來十年復(fù)活節(jié)的日期。復(fù)活節(jié)是一個(gè)基督教節(jié)日,在每年春分后第一個(gè)月圓夜后的第一個(gè)周日。當(dāng)我們計(jì)算這些日期時(shí),我們真的在意木星的79個(gè)衛(wèi)星嗎?當(dāng)然不,我們也不必這么做。

我們把軟件開發(fā)的解決方案分解成許多小部分,讓每一部分都圍繞著“太陽”運(yùn)行。這里的“太陽”可以是信息中介、服務(wù)總線、或者只是已經(jīng)建立好的契約(接口)。我們決定我們的“太陽系”需要多大程度的解耦。環(huán)繞太陽運(yùn)動(dòng)的小部件是模塊、域還是微服務(wù)并不重要,重要的是部件之間要盡可能地獨(dú)立。這會(huì)讓它們更容易被理解。用這種方式計(jì)算復(fù)活節(jié)日期甚至不需要知道木星有79個(gè)衛(wèi)星。

月亮顯著地影響了地球的軌道,這是事實(shí)。如果我們關(guān)心太陽和地球的關(guān)系,那么我們并不是在談?wù)摰厍蚝驮铝镰h(huán)繞太陽的軌道,我們只是在談?wù)摰厍虻能壍?。無論一個(gè)功能多么復(fù)雜(比如木星有79個(gè)衛(wèi)星),在整個(gè)系統(tǒng)(比如太陽系)中我們只需要將它們視為一個(gè)整體。

用這種方法我們并不需要處理太陽系中(大約)一百二十萬個(gè)天體,也不需要處理大約700個(gè)行星、小行星或衛(wèi)星。我們只考慮八大行星。因?yàn)橐话愣?,?dāng)我們談?wù)撎栂禃r(shí),我們只關(guān)心這八大行星。盡管這樣計(jì)算結(jié)果并不完美,但對(duì)我們來說已經(jīng)足夠精確,不會(huì)在工作中帶來問題。

簡化問題

當(dāng)我們考慮一個(gè)倉庫的庫存,我們到底在考慮什么?或許是一個(gè)大的倉庫和里面存儲(chǔ)的許多貨品。倉儲(chǔ)的工作是什么?為了存儲(chǔ)商品直到被它們被賣出。我們的軟件系統(tǒng)應(yīng)該只考慮這些功能。

網(wǎng)店應(yīng)該只負(fù)責(zé)展示商品并創(chuàng)建購買。但網(wǎng)店中的購買需要改變庫存狀態(tài)。所以如何解決這個(gè)問題?現(xiàn)在有很多解決方法,但請恕我直言。

購買已經(jīng)是一個(gè)足夠復(fù)雜的功能了。它獲取訂單,檢查庫存以查看是否有可購買的商品,執(zhí)行付款并創(chuàng)建運(yùn)輸。這可能看起來只是另一個(gè)功能,但由于它的大小,它可以被很容易地分成單獨(dú)的部分。

我們?yōu)閹齑鎰?chuàng)建嚴(yán)格的合同,根據(jù)合同我們可以得到所有貨物的清單、所有可用貨物的清單,可以檢查這些貨物是否可以售賣并減少它們的數(shù)量。網(wǎng)店只需知道可用的貨物。如果我們決定在某一點(diǎn)上支持軟刪除,或多個(gè)狀態(tài),就像我們在上面的例子中做的那樣,網(wǎng)店并不需要知道這些變化。只需更改網(wǎng)店收到的數(shù)據(jù),就可以在網(wǎng)店不知情的情況下完成上述操作。

對(duì)于“購買”這一功能,我們需要做相同的事。合同需要一個(gè)操作以完成購買。網(wǎng)店發(fā)起這一操作,然后它的任務(wù)就完成了?!百徺I”這一功能接管。它檢查是否有可用的貨品,然后如果一切正常,它完成購買并相應(yīng)地減掉庫存商品數(shù)量。

縱觀整個(gè)系統(tǒng),我們已經(jīng)清晰地分開了所有可以獨(dú)立存在的功能(一些而不是另一些)。我們是從庫存開始的,所以它當(dāng)然有自己的系統(tǒng)。接下來我們添加了“網(wǎng)店”和“購買”兩個(gè)可以獨(dú)立實(shí)現(xiàn)的功能。

我們確實(shí)有快遞服務(wù),但目前為止整個(gè)流程并不需要知道它的存在。所以我們也應(yīng)該將其視為一個(gè)獨(dú)立系統(tǒng)。我們不應(yīng)該把它強(qiáng)行加入已有的系統(tǒng)中并讓它們相匹配。

好了?,F(xiàn)在我們還沒有一個(gè)有著許多有復(fù)雜依賴性的功能的系統(tǒng)。我們有許多子系統(tǒng),每一個(gè)子系統(tǒng)都有特定的復(fù)雜度,它們共同構(gòu)成了一個(gè)相容并可持續(xù)的解決方案。

結(jié)論

建立、維護(hù)并擴(kuò)展軟件是一件復(fù)雜的事。最開始可能看起來很容易?!爸皇翘砑舆@個(gè)功能而已?!钡俏覀兲砑拥臇|西越多,方程就變得越復(fù)雜。如果我們想強(qiáng)行加入太多東西,最終我們會(huì)發(fā)現(xiàn)自己陷入了一個(gè)無法解決的問題中。而二者之間只有一線之隔。

對(duì)于多體問題,我們可以盡量簡化系統(tǒng),把它分成許多小部分。有很多人都可以來解決這些小的部分,比如小學(xué)生都可以解決單體問題。三體問題看起來無解,然而,這兩類問題之間的差異乍一看卻很小,因此可以利用軟件設(shè)計(jì)的思路,嘗試化整為零,對(duì)問題做一些簡化近似。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    9609

    瀏覽量

    157697
  • 解耦
    +關(guān)注

    關(guān)注

    0

    文章

    43

    瀏覽量

    12260

原文標(biāo)題:三體問題和軟件開發(fā)有什么關(guān)系?

文章出處:【微信號(hào):信息與電子工程前沿FITEE,微信公眾號(hào):信息與電子工程前沿FITEE】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    知識(shí)分享 | ISO 25119標(biāo)準(zhǔn)在農(nóng)業(yè)機(jī)械軟件開發(fā)中的應(yīng)用

    知識(shí)分享在知識(shí)分享欄目中,我們會(huì)定期與讀者分享來自MES模賽思的基于模型的軟件開發(fā)相關(guān)Know-How干貨,關(guān)注公眾號(hào),隨時(shí)掌握基于模型的軟件設(shè)計(jì)的技術(shù)知識(shí)。ISO25119標(biāo)準(zhǔn)在農(nóng)業(yè)機(jī)械軟件開發(fā)
    的頭像 發(fā)表于 04-08 10:03 ?147次閱讀
    知識(shí)分享 | ISO 25119標(biāo)準(zhǔn)在農(nóng)業(yè)機(jī)械<b class='flag-5'>軟件開發(fā)</b>中的應(yīng)用

    網(wǎng)絡(luò)分析儀程控軟件開發(fā)工具平臺(tái)介紹

    在射頻測試領(lǐng)域,矢量網(wǎng)絡(luò)分析儀(以下簡稱“網(wǎng)分”)作為核心測量設(shè)備,廣泛應(yīng)用于通信、半導(dǎo)體、航空航天等行業(yè)的濾波器、放大器、天線等器件測試。隨著測試需求的自動(dòng)化、智能化升級(jí),網(wǎng)分程控軟件開發(fā)成為提升
    的頭像 發(fā)表于 03-06 18:05 ?1008次閱讀
    網(wǎng)絡(luò)分析儀程控<b class='flag-5'>軟件開發(fā)</b>工具平臺(tái)介紹

    嵌入式軟件開發(fā)工具市場新動(dòng)向:訂閱制趨勢下的中國開發(fā)者選擇

    面對(duì)軟件業(yè)從永久授權(quán)模式廣泛轉(zhuǎn)向訂閱制的行業(yè)趨勢,作為行業(yè)兩大主流嵌入式軟件開發(fā)工具,即Keil MDK與IAR Embedded Workbench也推出了不同的市場策略,正在為中國開發(fā)者帶來新的選擇考量。
    的頭像 發(fā)表于 01-30 17:20 ?967次閱讀
    嵌入式<b class='flag-5'>軟件開發(fā)</b>工具市場新動(dòng)向:訂閱制趨勢下的中國<b class='flag-5'>開發(fā)</b>者選擇

    ADC模數(shù)轉(zhuǎn)換實(shí)戰(zhàn):硬件設(shè)計(jì)與軟件開發(fā)要點(diǎn)指南!

    ADC硬件設(shè)計(jì)與軟件開發(fā)的關(guān)鍵要點(diǎn),為開發(fā)者提供ADC轉(zhuǎn)換的實(shí)戰(zhàn)指導(dǎo)。 本文將分享硬件參考設(shè)計(jì)及LuatOS開發(fā)相關(guān)API,帶你快速了解ADC的軟硬件實(shí)現(xiàn)要點(diǎn)。 01. 模組相關(guān)管腳 Air780EPM系列模組與ADC相關(guān)的管腳
    的頭像 發(fā)表于 12-16 13:25 ?615次閱讀
    ADC模數(shù)轉(zhuǎn)換實(shí)戰(zhàn):硬件設(shè)計(jì)與<b class='flag-5'>軟件開發(fā)</b>要點(diǎn)指南!

    CW32嵌入式軟件開發(fā)的必備知識(shí)

    嵌入式軟件開發(fā)作為計(jì)算機(jī)科學(xué)和電子工程的交叉領(lǐng)域,要求開發(fā)人員具備一系列的專業(yè)知識(shí)和技能。 而基于CW32的嵌入式軟件開發(fā)必備知識(shí)包括以下部分: 1 、編程語言 熟練掌握C(C++)語言,這是
    發(fā)表于 11-28 07:48

    融合AI的OpenHarmony應(yīng)用軟件開發(fā):ai學(xué)習(xí)自律輔助軟件

    *附件:ai study.zip*附件:融合AI的OpenHarmony應(yīng)用軟件開發(fā):ai學(xué)習(xí)自律輔助軟件.pdf 基于開源鴻蒙編寫的ai輔助學(xué)習(xí)軟件
    發(fā)表于 11-12 15:38

    芯科科技推出Simplicity Ecosystem軟件開發(fā)套件

    Silicon Labs(芯科科技)今日在深圳盛大舉辦享譽(yù)業(yè)界的Works With開發(fā)者大會(huì),同時(shí)宣布推出Simplicity Ecosystem軟件開發(fā)套件,它不僅是下一代模塊化的軟件開發(fā)
    的頭像 發(fā)表于 10-27 16:45 ?1641次閱讀

    十大北京軟件開發(fā)公司推薦:有哪些優(yōu)點(diǎn)和缺點(diǎn)

    十大北京軟件開發(fā)公司推薦:有哪些優(yōu)點(diǎn)和缺點(diǎn)
    的頭像 發(fā)表于 10-04 09:44 ?4156次閱讀
    十大北京<b class='flag-5'>軟件開發(fā)</b>公司推薦:有哪些優(yōu)點(diǎn)和缺點(diǎn)

    2025北京軟件開發(fā)公司推薦匯總:盤點(diǎn)10家優(yōu)秀軟件定制開發(fā)公司

    2025北京軟件開發(fā)公司推薦匯總:盤點(diǎn)10家優(yōu)秀軟件定制開發(fā)公司
    的頭像 發(fā)表于 09-30 09:16 ?3005次閱讀
    2025北京<b class='flag-5'>軟件開發(fā)</b>公司推薦匯總:盤點(diǎn)10家優(yōu)秀<b class='flag-5'>軟件</b>定制<b class='flag-5'>開發(fā)</b>公司

    中興通訊智研開發(fā)智能榮獲信通院最高評(píng)級(jí)

    近日,中興通訊興云數(shù)科推出面向基礎(chǔ)工業(yè)軟件的智研開發(fā)智能,榮獲中國信通院可信AI軟件開發(fā)智能工具4+級(jí)評(píng)級(jí),成為國內(nèi)首批獲得當(dāng)前最高評(píng)級(jí)
    的頭像 發(fā)表于 09-26 15:29 ?1001次閱讀

    2025“芯原杯”全國嵌入式軟件開發(fā)大賽圓滿落幕

    此前,2025年7月20日至26日,第四屆“芯原杯”全國嵌入式軟件開發(fā)大賽決賽在??诔晒εe辦。
    的頭像 發(fā)表于 08-06 09:51 ?1622次閱讀

    知識(shí)分享 | 敏捷方法在基于模型的軟件開發(fā)項(xiàng)目中的應(yīng)用

    傳統(tǒng)的瀑布式軟件開發(fā)流程存在諸多局限,這使得應(yīng)用敏捷原則變得尤為重要,尤其是面對(duì)復(fù)雜且不斷變化的開發(fā)環(huán)境時(shí)。作為最高效的軟件開發(fā)方法之一,基于模型的開發(fā)(MBD)具有諸多優(yōu)勢。將敏捷原
    的頭像 發(fā)表于 07-16 16:52 ?1453次閱讀
    知識(shí)分享 | 敏捷方法在基于模型的<b class='flag-5'>軟件開發(fā)</b>項(xiàng)目中的應(yīng)用

    Modbus與MQTT的區(qū)別

    Modbus和MQTT是工業(yè)領(lǐng)域中兩種不同的通信協(xié)議,在設(shè)計(jì)目標(biāo)、應(yīng)用場景、通信模式等方面存在顯著差異,以下從多個(gè)維度兩者的區(qū)別: 1.設(shè)計(jì)目標(biāo)與起源 Modbus 誕生于1979年,由施耐德
    的頭像 發(fā)表于 07-10 14:10 ?1259次閱讀

    嵌入式軟件開發(fā)常用的軟件有哪些?

    對(duì)于初學(xué)嵌入式的朋友們,會(huì)想要了解嵌入式軟件開發(fā)常用的軟件有些,有什么用。那么看以下常用的軟件介紹。 1.Visual Studio Code 簡稱VSCode:它是一款由微軟開發(fā)且跨
    發(fā)表于 07-03 17:06

    基于瑞薩64位MPU RZ/G2L進(jìn)行32位應(yīng)用軟件開發(fā)

    本文主要介紹基于瑞薩64位MPU RZ/G2L進(jìn)行32位應(yīng)用軟件開發(fā)的介紹,用于解決客戶32位軟件移植相關(guān)問題,供客戶參考。
    的頭像 發(fā)表于 06-26 15:48 ?2243次閱讀
    基于瑞薩64位MPU RZ/G2L進(jìn)行32位應(yīng)用<b class='flag-5'>軟件開發(fā)</b>
    崇信县| 大理市| 南木林县| 天门市| 克什克腾旗| 彭山县| 荔浦县| 襄城县| 布拖县| 寻乌县| 宿松县| 南阳市| 松溪县| 镇巴县| 广昌县| 登封市| 隆昌县| 尉氏县| 息烽县| 高密市| 平度市| 稻城县| 林州市| 万源市| 历史| 荣昌县| 聂拉木县| 天长市| 玉溪市| 运城市| 徐汇区| 彭泽县| 石嘴山市| 涿州市| 迁安市| 江西省| 遵义县| 嘉义市| 淮滨县| 洱源县| 凤凰县|