是否存在利用自然規則執行的演算法?

時間 2021-05-29 23:06:47

1樓:

量子計算算不算呀?

傳統計算機模擬量子問題計算複雜度非常高,物理學家就產生想法能否用量子系統的這種特性去做高複雜度的計算。

2樓:

大家說的都好高大上,我說個簡單的。電路的各種連線就可以看做是一種演算法。

比如最簡單的兩個電阻,乙個1歐姆,乙個2歐姆。兩個一串聯瞬間變成3歐姆,兩個一併聯瞬間變成2/3歐姆。

更不用說n多個電阻串並混聯,結果都是很複雜的表示式一瞬間就完成了,比最快的CPU還快。

所以在自動控制領域,有些實在太快的地方還是只能用模擬器件。

3樓:bsdelf

時間是單調增加的,這是最簡單的自然規則,所以一覺醒來排序就完成啦:

main.c

#include

#include

#include

#include

#include

intmain

(int

argc

,char

*argv

)% cc main.c

% ./a.out 875

1200

12578

4樓:枕水

一種野生的菌類忘記叫什麼,類似苔蘚一樣的,但是比苔蘚更小,這種菌類可以自行生長,不斷擴充套件自己的地盤,接觸到更多的食物,然後如果某地點有著非常豐富的食物,則能夠在食物之間形成通道傳輸養分。

然後科學家就利用這一特性,將這種細菌放在培養皿中間,周圍點上幾滴營養膠,然後過幾周就發現,菌類生長的形狀,是以這幾滴營養膠為節點,形成的乙個網路。

重點是,這個網路是最節省路徑的,如果把這幾個節點按照東京地圖分布排列的話,那麼網路的形狀就和東京鐵路網相重合。而後者是經過人精心計算才設計出的網路圖,是最優解。

5樓:

(細胞自動機)

6樓:Heinrich

蒙特卡羅演算法:

打個簡單的比方,比如想知道乙個不規則圖形的面積。先將該圖形放入乙個正方形中,然後在正方形中隨機生成大量的黑點,黑點出現的位置完全隨機。最後統計所求面積中的黑點數量,除以總的黑點數量再乘上標準正方形的面積,即可近似知道該不規則圖形的面積。

我記得小時候看過乙個故事,不知是真是假,主人公可能是歐幾里得也可能是白岩松。但是例子很有意思:有人想測量一塊不規則的土地面積,於是就去求助白岩松,白岩松就將地圖畫在一塊板子上,稱好板子的重量,再沿著板子把地形剪下來,稱好剪下部分的重量,用重量的百分比乘總的板子面積得到了這塊不規則土地的面積。

這也算是一種蒙特卡洛演算法。

蒙特卡洛演算法的本質是用概率與統計的方法取代複雜的未知數學模型,看著有點暴力的樣子。但是在計算機的幫助下,可以迅速通過實驗手段得到近似解。而且試驗次數越多,結果越精確。

7樓:

假設這有乙個各種字母組成的字串,假設這還有另外乙個字串,而且這個字串裡的字母數相對少一些。從演算法是講,什麼方法能最快的查出所有小字串裡的字母在大字串裡都有?

比如,如果是下面兩個字串:

String 1: ABCDEFGHLMNOPQRS

String 2: DCGSRQPOM

答案是true,所有在string2裡的字母string1也都有。如果是下面兩個字串:

String 1: ABCDEFGHLMNOPQRS

String 2: DCGSRQPOZ

答案是false,因為第二個字串裡的Z字母不在第乙個字串裡。

對於這種操作一種幼稚的做法是輪詢第二個字串裡的每個字母,看它是否同在第乙個字串裡。從演算法上講,這需要O(n*m)次操作,其中n是string1的長度,m是string2的長度。就拿上面的例子來說,最壞的情況下將會有16*8 = 128次操作。

乙個稍微好一點的方案是先對這兩個字串的字母進行排序,然後同時對兩個字串依次輪詢。兩個字串的排序需要(常規情況)O(m log m) + O(n log n)次操作,之後的線性掃瞄需要O(m+n)次操作。同樣拿上面的字串做例子,將會需要16*4 + 8*3 = 88加上對兩個字串線性掃瞄的16 + 8 = 24的操作。

(隨著字串長度的增長,你會發現這個演算法的效果會越來越好)

最終,我告訴了他乙個最佳的演算法,只需要O(n+m)次操作。方法就是,對第乙個字串進行輪詢,把其中的每個字母都放入乙個Hashtable裡(成本是O(n)或16次操作)。然後輪詢第二個字串,在Hashtable裡查詢每個字母,看能否找到。

如果找不到,說明沒有匹配成功。這將消耗掉8次操作 —— 這樣兩項操作加起來一共只有24次。不錯吧,比前面兩種方案都要好。

Guy沒有被打動。他把他的皮褲子弄的沙沙響作為回應。」還有沒有更好的?「他問道。

我的天?這個傢伙究竟想要什麼?我看看白板,然後轉向他。

」沒有了,O(n+m)是你能得到的最好的結果了 —— 我是說,你至少要對每個字母至少訪問一次才能完成這項操作 —— 而這個方案是剛好是對每個字母只訪問一次「。我越想越確信我是對的。

他走到白板前,」如果這樣呢 —— 假設我們有乙個一定個數的字母組成字串 —— 我給每個字母分配乙個素數,從2開始,往後類推。這樣A將會是2,B將會是3,C將會是5,等等。現在我遍歷第乙個字串,把每個字母代表的素數相乘。

你最終會得到乙個很大的整數,對吧?然後 —— 輪詢第二個字串,用每個字母除它。如果除的結果有餘數,這說明有不匹配的字母。

如果整個過程中沒有餘數,你應該知道它是第乙個字串恰好的子集了。這樣不行嗎?「

8樓:

呵呵,排序什麼的都弱爆了,用雷射搭建網格來算格點規範場論才是王道!見這個 slides: http://

indico.cern.ch/event/289774/material/slides/0.

pdf. 阿貝場和非阿貝場都可以!有沒有費公尺場都可以!

時間是連續的!

不過我不做這方面,大牛來補完吧。

9樓:

有的。題主說的排序演算法思想挺有意思的,正確性應該沒什麼問題,但是效率肯定不比傳統的快速排序balabla……

另外說幾種我知道的模仿自然規律和生物行為的演算法吧。

1、遺傳演算法

根據自然物競天擇優秀基因得到保留的原理設計的演算法。大體上就是先編碼,然後不停交配,變異,N代之後會得到乙個比較優秀的基因。

2、模擬退火演算法。

根據固體從高溫冷卻到低溫內部粒子行為模擬出的演算法。

3、PSO演算法。

根據鳥群飛翔行為模擬出的演算法。(雖然每只鳥沒什麼智慧型,但作為整體鳥群總能找到合適的目標)

4、神經網路。

10樓:

珠排序。時間複雜度O(1),其實就是算盤吧……在珠排序中,一行(row)表示乙個數字。如果一行裡有2顆珠子,該行代表數字2;如果一行裡有4顆珠子,該行代表數字4。

給定乙個陣列,陣列裡有多少個數字,就要有多少行;陣列裡最大的數字是幾,就要準備多少根桿子。

準備就緒後,釋放珠子,珠子(按重力)下落,就完成了排序。珠排序

11樓:

題目問的是實數的排序

排序這個問題本身是電腦科學近乎研究爛的

給實數排序犯不上引入乙個高成本有誤差的物理過程 (但還是有, 如珠排序 / brad sort)

如果問題換成"可以用物理過程來計算的數學問題"就有一些. 比如測面積求數值積分

也有用計算機模擬物理過程來求解的

如模擬退火法, force-based graph layout algorithm

廣義上看可能遺傳演算法也算..

是否存在一種演算法可以隨機生成乙個自然數?

楊玉皓 不存在。目前電腦隨機是用感覺到環境細微變化得到乙個數,然後帶入特殊公式運算得到一系列數。都是有根據得來的。只有量子計算機才有可能產生真正的隨機數 在有限時間內能夠輸出的,一定是有限位數的。所以不存在。你說不用輸出?那怎麼測呢?理論證明也一樣啊,有限時間內所能取的結果的集合一定是有限的。自然數...

民法中的惡意串通規則是否有存在的必要?

先說結論,惡意串通規則在民法中有存在的必要,且非常重要。概括Lz提問 1 惡意串通規則是否可以被公序良俗規則所包含?2 雙方訂立的與第三人競爭的合同往往是合理的,這與惡意串通規則中的 惡意 有何區別?3 侵害第三人的利益為何不賦予第三人 追認權 4 隱藏行為往往也是 串通 行為,為何不當然無效?5 ...

最長公共子串行是否存在低於 O n 2 的演算法?

陳晨 若字符集為常數,則可低於O MN 設字符集為C,將動態規劃中n n的矩陣拆分 n t 2個t t的小矩陣,其中t為1 2 log以c為底n,在預處理中小矩陣有c 2t種,每個小矩陣需要t 2時間計算,所以預處理需要o n logn 2 這樣每個可能的小矩陣的結果都已經計算完 最後針對n n大矩...